pyloxi: support new OF 1.4 inheritance hierarchies

I left a couple of existing ones commented out, since changing them now would
break users. In the future we can move them to their own modules and leave
references to them in place for compatibility.
diff --git a/py_gen/codegen.py b/py_gen/codegen.py
index a664d87..f8a7211 100644
--- a/py_gen/codegen.py
+++ b/py_gen/codegen.py
@@ -49,6 +49,12 @@
     'of_table_mod_prop': 'table_mod_prop',
     'of_queue_desc_prop': 'queue_desc_prop',
     'of_queue_stats_prop': 'queue_stats_prop',
+    'of_async_config_prop': 'async_config_prop',
+    'of_bundle_prop': 'bundle_prop',
+    #'of_queue_prop': 'queue_prop',
+    'of_role_prop': 'role_prop',
+    #'of_table_feature_prop': 'table_feature_prop',
+    'of_table_mod_prop': 'table_mod_prop',
 }
 
 # Return the module and class names for the generated Python class
diff --git a/py_gen/oftype.py b/py_gen/oftype.py
index 7bd242e..51b8e13 100644
--- a/py_gen/oftype.py
+++ b/py_gen/oftype.py
@@ -143,6 +143,7 @@
     'of_port_desc_t': 'common.port_desc',
     'of_meter_features_t': 'common.meter_features',
     'of_bsn_vport_t': 'common.bsn_vport',
+    'of_table_desc_t': 'common.table_desc',
 }
 
 for (cls, pyclass) in embedded_structs.items():
@@ -190,6 +191,7 @@
     elif oftype_is_list(oftype):
         ofproto = loxi_globals.ir[version]
         ofclass = ofproto.class_by_name(oftype_list_elem(oftype))
+        assert ofclass, "No class named %r" % oftype_list_elem(oftype)
         module_name, class_name = py_gen.codegen.generate_pyname(ofclass)
         return 'loxi.generic_util.unpack_list(%s, %s.%s.unpack)' % \
             (reader_expr, module_name, class_name)