py: Never intern data of large string/bytes object; add relevant tests.

Previously to this patch all constant string/bytes objects were
interned by the compiler, and this lead to crashes when the qstr was too
long (noticeable now that qstr length storage defaults to 1 byte).

With this patch, long string/bytes objects are never interned, and are
referenced directly as constant objects within generated code using
load_const_obj.
diff --git a/py/qstr.c b/py/qstr.c
index c244738..2553872 100644
--- a/py/qstr.c
+++ b/py/qstr.c
@@ -148,6 +148,7 @@
 }
 
 qstr qstr_from_strn(const char *str, mp_uint_t len) {
+    assert(len < (1 << (8 * MICROPY_QSTR_BYTES_IN_LEN)));
     qstr q = qstr_find_strn(str, len);
     if (q == 0) {
         mp_uint_t hash = qstr_compute_hash((const byte*)str, len);