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/obj.h b/py/obj.h
index 7bf00d4..9028c06 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -585,8 +585,8 @@
 #define mp_seq_replace_slice_no_grow(dest, dest_len, beg, end, slice, slice_len, item_t) \
     /*printf("memcpy(%p, %p, %d)\n", dest + beg, slice, slice_len * sizeof(item_t));*/ \
     memcpy(dest + beg, slice, slice_len * sizeof(item_t)); \
-    /*printf("memcpy(%p, %p, %d)\n", dest + (beg + slice_len), dest + end, (dest_len - end) * sizeof(item_t));*/ \
-    memcpy(dest + (beg + slice_len), dest + end, (dest_len - end) * sizeof(item_t));
+    /*printf("memmove(%p, %p, %d)\n", dest + (beg + slice_len), dest + end, (dest_len - end) * sizeof(item_t));*/ \
+    memmove(dest + (beg + slice_len), dest + end, (dest_len - end) * sizeof(item_t));
 
 #define mp_seq_replace_slice_grow_inplace(dest, dest_len, beg, end, slice, slice_len, len_adj, item_t) \
     /*printf("memmove(%p, %p, %d)\n", dest + beg + len_adj, dest + beg, (dest_len - beg) * sizeof(item_t));*/ \