py: Get rid of assert() in method argument checking functions.

Checks for number of args removes where guaranteed by function descriptor,
self checking is replaced with mp_check_self(). In few cases, exception
is raised instead of assert.
diff --git a/py/objreversed.c b/py/objreversed.c
index 1e54bb5..4343c19 100644
--- a/py/objreversed.c
+++ b/py/objreversed.c
@@ -57,7 +57,7 @@
 }
 
 STATIC mp_obj_t reversed_iternext(mp_obj_t self_in) {
-    assert(MP_OBJ_IS_TYPE(self_in, &mp_type_reversed));
+    mp_check_self(MP_OBJ_IS_TYPE(self_in, &mp_type_reversed));
     mp_obj_reversed_t *self = MP_OBJ_TO_PTR(self_in);
 
     // "raise" stop iteration if we are at the end (the start) of the sequence