Add basic implementation of bytes type, piggybacking on str.

This reuses as much str implementation as possible, from this we
can make them more separate as needed.
diff --git a/py/runtime.c b/py/runtime.c
index 0d9906e..3d56cc8 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -408,6 +408,13 @@
     return MP_OBJ_NEW_QSTR(qstr);
 }
 
+mp_obj_t rt_load_const_bytes(qstr qstr) {
+    DEBUG_OP_printf("load b'%s'\n", qstr_str(qstr));
+    uint len;
+    const byte *data = qstr_data(qstr, &len);
+    return mp_obj_new_bytes(data, len);
+}
+
 mp_obj_t rt_load_name(qstr qstr) {
     // logic: search locals, globals, builtins
     DEBUG_OP_printf("load name %s\n", qstr_str(qstr));