py: Move definition of mp_sys_exit to core.

sys.exit always raises SystemExit so doesn't need a special
implementation for each port.  If C exit() is really needed, use the
standard os._exit function.

Also initialise mp_sys_path and mp_sys_argv in teensy port.
diff --git a/unix/main.c b/unix/main.c
index 177c76b..f00bf3d 100644
--- a/unix/main.c
+++ b/unix/main.c
@@ -130,10 +130,11 @@
         // check for SystemExit
         mp_obj_t exc = (mp_obj_t)nlr.ret_val;
         if (mp_obj_is_subclass_fast(mp_obj_get_type(exc), &mp_type_SystemExit)) {
+            // None is an exit value of 0; an int is its value; anything else is 1
             mp_obj_t exit_val = mp_obj_exception_get_value(exc);
-            mp_int_t val;
-            if (!mp_obj_get_int_maybe(exit_val, &val)) {
-                val = 0;
+            mp_int_t val = 0;
+            if (exit_val != mp_const_none && !mp_obj_get_int_maybe(exit_val, &val)) {
+                val = 1;
             }
             exit(val);
         }
@@ -406,15 +407,6 @@
     return ret;
 }
 
-STATIC mp_obj_t mp_sys_exit(uint n_args, const mp_obj_t *args) {
-    int rc = 0;
-    if (n_args > 0) {
-        rc = mp_obj_get_int(args[0]);
-    }
-    nlr_raise(mp_obj_new_exception_arg1(&mp_type_SystemExit, mp_obj_new_int(rc)));
-}
-MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_sys_exit_obj, 0, 1, mp_sys_exit);
-
 uint mp_import_stat(const char *path) {
     struct stat st;
     if (stat(path, &st) == 0) {