py: Factor out persistent-code reader into separate files.

Implementations of persistent-code reader are provided for POSIX systems
and systems using FatFS.  Macros to use these are MICROPY_READER_POSIX and
MICROPY_READER_FATFS respectively.  If an alternative implementation is
needed then a port can define the function mp_reader_new_file.
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 3945a1a..1980e64 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -381,6 +381,16 @@
 /*****************************************************************************/
 /* Python internal features                                                  */
 
+// Whether to use the POSIX reader for importing files
+#ifndef MICROPY_READER_POSIX
+#define MICROPY_READER_POSIX (0)
+#endif
+
+// Whether to use the FatFS reader for importing files
+#ifndef MICROPY_READER_FATFS
+#define MICROPY_READER_FATFS (0)
+#endif
+
 // Hook for the VM at the start of the opcode loop (can contain variable
 // definitions usable by the other hook functions)
 #ifndef MICROPY_VM_HOOK_INIT