py: Implement keyword-only args.

Implements 'def f(*, a)' and 'def f(*a, b)', but not default
keyword-only args, eg 'def f(*, a=1)'.

Partially addresses issue #524.
diff --git a/py/emitnative.c b/py/emitnative.c
index 79d6da6..1949009 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -230,7 +230,7 @@
 
     // initialise locals from parameters
 #if N_X64
-    for (int i = 0; i < scope->num_params; i++) {
+    for (int i = 0; i < scope->num_pos_args; i++) {
         if (i == 0) {
             asm_x64_mov_r64_to_r64(emit->as, REG_ARG_1, REG_LOCAL_1);
         } else if (i == 1) {
@@ -243,7 +243,7 @@
         }
     }
 #elif N_THUMB
-    for (int i = 0; i < scope->num_params; i++) {
+    for (int i = 0; i < scope->num_pos_args; i++) {
         if (i == 0) {
             asm_thumb_mov_reg_reg(emit->as, REG_LOCAL_1, REG_ARG_1);
         } else if (i == 1) {
@@ -283,10 +283,10 @@
     if (emit->pass == PASS_3) {
 #if N_X64
         void *f = asm_x64_get_code(emit->as);
-        mp_emit_glue_assign_native_code(emit->scope->raw_code, f, asm_x64_get_code_size(emit->as), emit->scope->num_params);
+        mp_emit_glue_assign_native_code(emit->scope->raw_code, f, asm_x64_get_code_size(emit->as), emit->scope->num_pos_args);
 #elif N_THUMB
         void *f = asm_thumb_get_code(emit->as);
-        mp_emit_glue_assign_native_code(emit->scope->raw_code, f, asm_thumb_get_code_size(emit->as), emit->scope->num_params);
+        mp_emit_glue_assign_native_code(emit->scope->raw_code, f, asm_thumb_get_code_size(emit->as), emit->scope->num_pos_args);
 #endif
     }
 }