py/repl: Fix case where shorter names are shadowed by longer names.

Previous to this patch, if "abcd" and "ab" were possible completions
to tab-completing "a", then tab would expand to "abcd" straight away
if this identifier appeared first in the dict.
diff --git a/py/repl.c b/py/repl.c
index 649ade1..736dfa3 100644
--- a/py/repl.c
+++ b/py/repl.c
@@ -187,7 +187,9 @@
                             match_str = d_str;
                             match_len = d_len;
                         } else {
-                            for (mp_uint_t j = s_len; j < match_len && j < d_len; ++j) {
+                            // search for longest common prefix of match_str and d_str
+                            // (assumes these strings are null-terminated)
+                            for (mp_uint_t j = s_len; j <= match_len && j <= d_len; ++j) {
                                 if (match_str[j] != d_str[j]) {
                                     match_len = j;
                                     break;