py: Towards default keyword arguments.

These are default arguments after a bare *.
diff --git a/py/vm.c b/py/vm.c
index 599a1d8..20388ec 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -648,23 +648,28 @@
 
                     case MP_BC_MAKE_FUNCTION:
                         DECODE_UINT;
-                        PUSH(mp_make_function_from_id(unum, false, MP_OBJ_NULL));
+                        PUSH(mp_make_function_from_id(unum, false, MP_OBJ_NULL, MP_OBJ_NULL));
                         break;
 
                     case MP_BC_MAKE_FUNCTION_DEFARGS:
                         DECODE_UINT;
-                        SET_TOP(mp_make_function_from_id(unum, false, TOP()));
+                        // Stack layout: def_dict def_tuple <- TOS
+                        obj1 = POP();
+                        SET_TOP(mp_make_function_from_id(unum, false, obj1, TOP()));
                         break;
 
                     case MP_BC_MAKE_CLOSURE:
                         DECODE_UINT;
-                        SET_TOP(mp_make_closure_from_id(unum, TOP(), MP_OBJ_NULL));
+                        // Stack layout: closure_tuple <- TOS
+                        SET_TOP(mp_make_closure_from_id(unum, TOP(), MP_OBJ_NULL, MP_OBJ_NULL));
                         break;
 
                     case MP_BC_MAKE_CLOSURE_DEFARGS:
                         DECODE_UINT;
+                        // Stack layout: def_dict def_tuple closure_tuple <- TOS
                         obj1 = POP();
-                        SET_TOP(mp_make_closure_from_id(unum, obj1, TOP()));
+                        obj2 = POP();
+                        SET_TOP(mp_make_closure_from_id(unum, obj1, obj2, TOP()));
                         break;
 
                     case MP_BC_CALL_FUNCTION: