py: VM never throws an exception, instead returns a status and value.

Addresses issue #290, and hopefully sets up things to allow generators
throwing exceptions, etc.
diff --git a/py/objexcept.c b/py/objexcept.c
index dbe702f..65ec533 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -27,6 +27,7 @@
         print(env, "%s: %s", qstr_str(o->base.type->name), vstr_str(o->msg));
     } else {
         // Yes, that's how CPython has it
+        // TODO now that exceptions are classes and instances, I think this needs to be changed to match CPython
         if (kind == PRINT_REPR) {
             print(env, "%s", qstr_str(o->base.type->name));
         }
@@ -162,7 +163,7 @@
 
     // for traceback, we are just using the list object for convenience, it's not really a list of Python objects
     if (self->traceback == MP_OBJ_NULL) {
-        self->traceback = mp_obj_new_list(3, NULL);
+        self->traceback = mp_obj_new_list(0, NULL);
     }
     mp_obj_list_append(self->traceback, (mp_obj_t)(machine_uint_t)file);
     mp_obj_list_append(self->traceback, (mp_obj_t)(machine_uint_t)line);