py: Finish implementation of all del opcodes.

At this point, all opcodes are now implemented!

Some del opcodes have been combined with store opcodes, with the value
to store being MP_OBJ_NULL.
diff --git a/py/obj.h b/py/obj.h
index 77cf783..ee37c89 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -217,7 +217,7 @@
     mp_binary_op_fun_t binary_op;   // can return NULL if op not supported
 
     mp_load_attr_fun_t load_attr;
-    mp_store_attr_fun_t store_attr;
+    mp_store_attr_fun_t store_attr; // if value is MP_OBJ_NULL, then delete that attribute
     // Implements container[index] = val; note that load_item is implemented
     // by binary_op(RT_BINARY_OP_SUBSCR)
     mp_store_item_fun_t store_item;