Hierarchical error messages plus some more tweaks

- hierarchical error messages for different error types
- renamed ofp_stats_types to ofp_stats_type
- renamed OFP_VENDOR to OFP_EXPERIMENTER in OF 1.0 input file
- use ofp_capabilities enum in of_features_reply
- use boolean type for l2_table_enable field in of_bsn_set_l2_table_(request|reply)
- return Set<OFActionType> for actions field in of_features_reply
- added DatapathId class that's returned for datapath_id field of of_features_reply
- removed unused read/write routines from OFBufferId
- added getOFVersioon method to factory classes/interfaces
- renamed OFPT_MULTIPART_(REQUEST|REPLY) to OFPT_STATS_(REQUEST|REPLY) in OF 1.3 input file
- renamed ofp_multipart_types to ofp_stats_type in OF 1.3 input file
- tweaked python backend to work with consistent use of of_stats_xyz vs. of_multipart_xyz in 1.3
diff --git a/test_data/of13/error.data b/test_data/of13/error.data
index fcb0c1c..ffe1a2b 100644
--- a/test_data/of13/error.data
+++ b/test_data/of13/error.data
@@ -6,8 +6,7 @@
 00 08 # code
 61 62 63 # data
 -- python
-ofp.message.error_msg(
+ofp.message.bad_match_error_msg(
     xid=0x12345678,
-    err_type=ofp.OFPET_BAD_MATCH,
     code=ofp.OFPBMC_BAD_MASK,
     data="abc")