Implement ROMable modules.  Add math module.

mp_module_obj_t can now be put in ROM.

Configuration of float type is now similar to longint: can now choose
none, float or double as the implementation.

math module has basic math functions.  For STM port, these are not yet
implemented (they are just stub functions).
diff --git a/py/builtin.h b/py/builtin.h
index 85ceeaf..d941404 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -34,4 +34,5 @@
 
 MP_DECLARE_CONST_FUN_OBJ(mp_namedtuple_obj);
 
-void mp_module_micropython_init(void);
+extern const mp_obj_module_t mp_module_math;
+extern const mp_obj_module_t mp_module_micropython;