py: Add MP_OBJ_STOP_ITERATION and make good use of it.

Also make consistent use of MP_OBJ_NOT_SUPPORTED and MP_OBJ_NULL.
This helps a lot in debugging and understanding of function API.
diff --git a/py/objcomplex.c b/py/objcomplex.c
index 8d8ebd2..9244209 100644
--- a/py/objcomplex.c
+++ b/py/objcomplex.c
@@ -98,7 +98,7 @@
         case MP_UNARY_OP_BOOL: return MP_BOOL(o->real != 0 || o->imag != 0);
         case MP_UNARY_OP_POSITIVE: return o_in;
         case MP_UNARY_OP_NEGATIVE: return mp_obj_new_complex(-o->real, -o->imag);
-        default: return MP_OBJ_NULL; // op not supported
+        default: return MP_OBJ_NOT_SUPPORTED;
     }
 }
 
@@ -208,7 +208,7 @@
         case MP_BINARY_OP_EQUAL: return MP_BOOL(lhs_real == rhs_real && lhs_imag == rhs_imag);
 
         default:
-            return MP_OBJ_NULL; // op not supported
+            return MP_OBJ_NOT_SUPPORTED;
     }
     return mp_obj_new_complex(lhs_real, lhs_imag);
 }