py: Add support for 64-bit NaN-boxing object model, on 32-bit machine.

To use, put the following in mpconfigport.h:

    #define MICROPY_OBJ_REPR (MICROPY_OBJ_REPR_D)
    #define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
    typedef int64_t mp_int_t;
    typedef uint64_t mp_uint_t;
    #define UINT_FMT "%llu"
    #define INT_FMT "%lld"

Currently does not work with native emitter enabled.
diff --git a/py/objfloat.c b/py/objfloat.c
index c9e3ddd..051c0f6 100644
--- a/py/objfloat.c
+++ b/py/objfloat.c
@@ -39,7 +39,7 @@
 #include <math.h>
 #include "py/formatfloat.h"
 
-#if MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_C
+#if MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_C && MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_D
 
 typedef struct _mp_obj_float_t {
     mp_obj_base_t base;
@@ -125,7 +125,7 @@
     .binary_op = float_binary_op,
 };
 
-#if MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_C
+#if MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_C && MICROPY_OBJ_REPR != MICROPY_OBJ_REPR_D
 
 mp_obj_t mp_obj_new_float(mp_float_t value) {
     mp_obj_float_t *o = m_new(mp_obj_float_t, 1);