py: Change [u]int to mp_[u]int_t in qstr.[ch], and some other places.

This should pretty much resolve issue #50.
diff --git a/py/objstr.c b/py/objstr.c
index dd44b07..c88c915 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -213,7 +213,7 @@
         return mp_obj_str_builder_end(o);
     }
 
-    int len;
+    mp_int_t len;
     byte *data;
     vstr_t *vstr = NULL;
     mp_obj_t o = NULL;
@@ -293,7 +293,7 @@
                 // add 2 strings or bytes
 
                 GET_STR_DATA_LEN(rhs_in, rhs_data, rhs_len);
-                int alloc_len = lhs_len + rhs_len;
+                mp_uint_t alloc_len = lhs_len + rhs_len;
 
                 /* code for making qstr
                 byte *q_ptr;
@@ -440,8 +440,8 @@
     }
 
     // count required length
-    int required_len = 0;
-    for (int i = 0; i < seq_len; i++) {
+    mp_uint_t required_len = 0;
+    for (mp_uint_t i = 0; i < seq_len; i++) {
         if (mp_obj_get_type(seq_items[i]) != self_type) {
             nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError,
                 "join expects a list of str/bytes objects consistent with self object"));
@@ -456,7 +456,7 @@
     // make joined string
     byte *data;
     mp_obj_t joined_str = mp_obj_str_builder_start(self_type, required_len, &data);
-    for (int i = 0; i < seq_len; i++) {
+    for (mp_uint_t i = 0; i < seq_len; i++) {
         if (i > 0) {
             memcpy(data, sep_str, sep_len);
             data += sep_len;
@@ -562,7 +562,7 @@
     // Preallocate list to the max expected # of elements, as we
     // will fill it from the end.
     mp_obj_list_t *res = mp_obj_new_list(splits + 1, NULL);
-    int idx = splits;
+    mp_int_t idx = splits;
 
     if (sep == mp_const_none) {
         assert(!"TODO: rsplit(None,n) not implemented");
@@ -598,7 +598,7 @@
         }
         if (idx != 0) {
             // We split less parts than split limit, now go cleanup surplus
-            int used = org_splits + 1 - idx;
+            mp_int_t used = org_splits + 1 - idx;
             memmove(res->items, &res->items[idx], used * sizeof(mp_obj_t));
             mp_seq_clear(res->items, used, res->alloc, sizeof(*res->items));
             res->len = used;
@@ -1554,7 +1554,7 @@
     GET_STR_DATA_LEN(self_in, self_data, self_len);
     byte *data;
     mp_obj_t s = mp_obj_str_builder_start(mp_obj_get_type(self_in), self_len, &data);
-    for (int i = 0; i < self_len; i++) {
+    for (mp_uint_t i = 0; i < self_len; i++) {
         *data++ = op(*self_data++);
     }
     *data = 0;
@@ -1577,7 +1577,7 @@
     }
 
     if (f != unichar_isupper && f != unichar_islower) {
-        for (int i = 0; i < self_len; i++) {
+        for (mp_uint_t i = 0; i < self_len; i++) {
             if (!f(*self_data++)) {
                 return mp_const_false;
             }
@@ -1585,7 +1585,7 @@
     } else {
         bool contains_alpha = false;
 
-        for (int i = 0; i < self_len; i++) { // only check alphanumeric characters
+        for (mp_uint_t i = 0; i < self_len; i++) { // only check alphanumeric characters
             if (unichar_isalpha(*self_data++)) {
                 contains_alpha = true;
                 if (!f(*(self_data - 1))) { // -1 because we already incremented above