py: Allow to properly disable builtin "set" object.

This patch makes MICROPY_PY_BUILTINS_SET compile-time option fully
disable the builtin set object (when set to 0).  This includes removing
set constructor/comprehension from the grammar, the compiler and the
emitters.  Now, enabling set costs 8168 bytes on unix x64, and 3576
bytes on stmhal.
diff --git a/py/emitnative.c b/py/emitnative.c
index 01e342d..9f57334 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -2064,6 +2064,7 @@
     emit_post(emit);
 }
 
+#if MICROPY_PY_BUILTINS_SET
 STATIC void emit_native_build_set(emit_t *emit, mp_uint_t n_args) {
     emit_native_pre(emit);
     emit_get_stack_pointer_to_reg_for_pop(emit, REG_ARG_2, n_args); // pointer to items
@@ -2081,6 +2082,7 @@
     emit_call(emit, MP_F_STORE_SET);
     emit_post(emit);
 }
+#endif
 
 STATIC void emit_native_build_slice(emit_t *emit, mp_uint_t n_args) {
     DEBUG_printf("build_slice %d\n", n_args);
@@ -2330,8 +2332,10 @@
     emit_native_build_map,
     emit_native_store_map,
     emit_native_map_add,
+    #if MICROPY_PY_BUILTINS_SET
     emit_native_build_set,
     emit_native_set_add,
+    #endif
     emit_native_build_slice,
     emit_native_unpack_sequence,
     emit_native_unpack_ex,