py: Use memmove instead of memcpy when appropriate.

Found this bug by running unix/ tests with DEBUG=1 enabled when
compiling.
diff --git a/py/objstr.c b/py/objstr.c
index 366ba88..fd4bc82 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -567,7 +567,7 @@
         if (idx != 0) {
             // We split less parts than split limit, now go cleanup surplus
             int used = org_splits + 1 - idx;
-            memcpy(res->items, &res->items[idx], used * sizeof(mp_obj_t));
+            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;
         }