py: Add MICROPY_QSTR_BYTES_IN_LEN config option, defaulting to 1.

This new config option sets how many fixed-number-of-bytes to use to
store the length of each qstr.  Previously this was hard coded to 2,
but, as per issue #1056, this is considered overkill since no-one
needs identifiers longer than 255 bytes.

With this patch the number of bytes for the length is configurable, and
defaults to 1 byte.  The configuration option filters through to the
makeqstrdata.py script.

Code size savings going from 2 to 1 byte:
- unix x64 down by 592 bytes
- stmhal down by 1148 bytes
- bare-arm down by 284 bytes

Also has RAM savings, and will be slightly more efficient in execution.
diff --git a/py/mpconfig.h b/py/mpconfig.h
index dcc116d..541f7c7 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -112,6 +112,13 @@
 #define MICROPY_MODULE_DICT_SIZE (1)
 #endif
 
+// Number of bytes used to store qstr length
+// Dictates hard limit on maximum Python identifier length, but 1 byte
+// (limit of 255 bytes in an identifier) should be enough for everyone
+#ifndef MICROPY_QSTR_BYTES_IN_LEN
+#define MICROPY_QSTR_BYTES_IN_LEN (1)
+#endif
+
 /*****************************************************************************/
 /* Micro Python emitters                                                     */