Add L2 table extension messages.
Remove unnecessary fields.
Merge remote-tracking branch 'kenchiang/l2-ext'
parser: return AST in list form

This is the format the rest of the system uses anyway.
factor out transforming AST into OFInput

This will become more complex as new syntax is added and a real intermediate
representation is defined.
openflow_input: use of_ prefix in input files

No change to generated code.
parser: add padding syntax
openflow_input: use padding member syntax
frontend: generate intermediate representation

This is converted to the legacy format by read_input.
expose new intermediate representation at of_g.ir
loxigen: sort ofclasses by name
move OXM definitions into the input files

This makes the rest of the code simpler, and makes it easier to add new OXM
types in extensions.
move OXM wire types into type_maps.py
parser: tag data members

It's cleaner to differentiate between the different types of member AST by
using the first element as a tag.
frontend: support specifying type member values in the input file
openflow_input: add type values
type_maps: factor code out of top level
move header class generation into legacy codepath
openflow_input: remove experimenter OXM header

We expect extensions to use the OXM class.
loxigen: generate legacy type_maps data from the IR

The C backend (and, for the moment, the python and java backends) still need
the type_maps data. Duplicating it between the type_maps file and the input
files is not ideal because adding a new object would require editing both
places.

This change does the minimal work to generate most of the type_maps data from
the IR. There are some stragglers where LOXI is particularly unclean (stats and
flow-mod subtypes not really using inheritance) but the goal is for a developer
who needs to add a new object to be able to do it without modifying Python
code.