pyloxi: generic list deserialization

Since objects now handle their own type and length fields they can all use the
same generic list code. The oftype functions now generate list pack, unpack,
and init code on demand so nothing needs to be changed in pyloxi to use a new
list type.
diff --git a/py_gen/tests/of10.py b/py_gen/tests/of10.py
index e08a2b3..250000f 100644
--- a/py_gen/tests/of10.py
+++ b/py_gen/tests/of10.py
@@ -88,34 +88,34 @@
         add(ofp.action.bsn_set_tunnel_dst(dst=0x12345678))
         add(ofp.action.nicira_dec_ttl())
 
-        actions = ofp.util.unpack_list_action(OFReader(''.join(bufs)))
+        actions = loxi.generic_util.unpack_list(OFReader(''.join(bufs)), ofp.action.action.unpack)
         self.assertEquals(actions, expected)
 
     def test_empty_list(self):
-        self.assertEquals(ofp.util.unpack_list_action(OFReader('')), [])
+        self.assertEquals(loxi.generic_util.unpack_list(OFReader(''), ofp.action.action.unpack), [])
 
     def test_invalid_list_length(self):
         buf = '\x00' * 9
         with self.assertRaisesRegexp(ofp.ProtocolError, 'Buffer too short'):
-            ofp.util.unpack_list_action(OFReader(buf))
+            loxi.generic_util.unpack_list(OFReader(buf), ofp.action.action.unpack)
 
     def test_invalid_action_length(self):
         buf = '\x00' * 8
         with self.assertRaisesRegexp(ofp.ProtocolError, 'Buffer too short'):
-            ofp.util.unpack_list_action(OFReader(buf))
+            loxi.generic_util.unpack_list(OFReader(buf), ofp.action.action.unpack)
 
         buf = '\x00\x00\x00\x04'
         with self.assertRaisesRegexp(ofp.ProtocolError, 'Buffer too short'):
-            ofp.util.unpack_list_action(OFReader(buf))
+            loxi.generic_util.unpack_list(OFReader(buf), ofp.action.action.unpack)
 
         buf = '\x00\x00\x00\x10\x00\x00\x00\x00'
         with self.assertRaisesRegexp(ofp.ProtocolError, 'Buffer too short'):
-            ofp.util.unpack_list_action(OFReader(buf))
+            loxi.generic_util.unpack_list(OFReader(buf), ofp.action.action.unpack)
 
     def test_invalid_action_type(self):
         buf = '\xff\xfe\x00\x08\x00\x00\x00\x00'
         with self.assertRaisesRegexp(ofp.ProtocolError, 'unknown action subtype'):
-            ofp.util.unpack_list_action(OFReader(buf))
+            loxi.generic_util.unpack_list(OFReader(buf), ofp.action.action.unpack)
 
 class TestConstants(unittest.TestCase):
     def test_ports(self):