objint: Implement int.from_bytes() class method and .to_bytes() method.

These two are apprerently the most concise and efficient way to convert
int to/from bytes in Python. The alternatives are struct and array modules,
but methods using them are more verbose in Python code and less efficient
in memory/cycles.
diff --git a/py/objint.c b/py/objint.c
index e1b67a1..05269ce 100644
--- a/py/objint.c
+++ b/py/objint.c
@@ -261,6 +261,43 @@
     return MP_OBJ_NULL;
 }
 
+STATIC mp_obj_t int_from_bytes(uint n_args, const mp_obj_t *args) {
+    buffer_info_t bufinfo;
+    mp_get_buffer_raise(args[0], &bufinfo);
+
+    assert(bufinfo.len >= sizeof(machine_int_t));
+    // TODO: Support long ints
+    // TODO: Support byteorder param
+    // TODO: Support signed param
+    return mp_obj_new_int_from_uint(*(machine_uint_t*)bufinfo.buf);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(int_from_bytes_obj, 1, 3, int_from_bytes);
+
+STATIC mp_obj_t int_to_bytes(uint n_args, const mp_obj_t *args) {
+    machine_int_t val = mp_obj_int_get_checked(args[0]);
+
+    uint len = MP_OBJ_SMALL_INT_VALUE(args[1]);
+    byte *data;
+
+    // TODO: Support long ints
+    // TODO: Support byteorder param
+    // TODO: Support signed param
+    mp_obj_t o = mp_obj_str_builder_start(&mp_type_bytes, len, &data);
+    memset(data, 0, len);
+    memcpy(data, &val, len < sizeof(machine_int_t) ? len : sizeof(machine_int_t));
+    return mp_obj_str_builder_end(o);
+}
+
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(int_to_bytes_obj, 2, 4, int_to_bytes);
+
+STATIC const mp_map_elem_t int_locals_dict_table[] = {
+    { MP_OBJ_NEW_QSTR(MP_QSTR_from_bytes), (mp_obj_t)&int_from_bytes_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_to_bytes), (mp_obj_t)&int_to_bytes_obj },
+};
+
+STATIC MP_DEFINE_CONST_DICT(int_locals_dict, int_locals_dict_table);
+
 const mp_obj_type_t mp_type_int = {
     { &mp_type_type },
     .name = MP_QSTR_int,
@@ -268,4 +305,5 @@
     .make_new = mp_obj_int_make_new,
     .unary_op = mp_obj_int_unary_op,
     .binary_op = mp_obj_int_binary_op,
+    .locals_dict = (mp_obj_t)&int_locals_dict,
 };