py, compiler: Clean up and compress scope/compile structures.

Convert int types to uint where sensible, and then to uint8_t or
uint16_t where possible to reduce RAM usage.
diff --git a/py/compile.c b/py/compile.c
index 95fe1d7..778e932 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -38,16 +38,17 @@
 
 typedef struct _compiler_t {
     qstr source_file;
-    bool is_repl;
-    pass_kind_t pass;
-    bool had_error; // try to keep compiler clean from nlr
+    uint8_t is_repl;
+    uint8_t pass; // holds enum type pass_kind_t
+    uint8_t had_error; // try to keep compiler clean from nlr
+    uint8_t func_arg_is_super; // used to compile special case of super() function call
 
     int next_label;
 
     int break_label;
     int continue_label;
     int break_continue_except_level;
-    int cur_except_level; // increased for SETUP_EXCEPT, SETUP_FINALLY; decreased for POP_BLOCK, POP_EXCEPT
+    uint16_t cur_except_level; // increased for SETUP_EXCEPT, SETUP_FINALLY; decreased for POP_BLOCK, POP_EXCEPT
 
     int n_arg_keyword;
     bool have_star_arg;
@@ -57,8 +58,6 @@
     int param_pass_num_dict_params;
     int param_pass_num_default_params;
 
-    bool func_arg_is_super; // used to compile special case of super() function call
-
     scope_t *scope_head;
     scope_t *scope_cur;