Merge pull request #329 from rlane/of14

Merge master into of14 branch
loci: use class metadata in push_wire_values

This needs the same special cases as build_class_metadata, but they weren't in
sync.
loci: inline push_wire_values into new

The difference between push_wire_types and push_wire_values was always
confusing. Now that push_wire_values is simple enough we can inline it.
loci: fix testing inheritance hierarchies with no non-virtual subclasses

The of_queue_stats_prop class in OF 1.4 is virtual but doesn't have any
non-virtual subclasses defined. This code was previously assuming a class could
be instantiated if it didn't have any subclasses.
openflow_input: add subclasses for port_mod_prop

of_port_mod_prop_optical has a signed member which we don't currently support.
loci: wire length get/set functions for new special cases

Most of these special cases have a u16 length member, but not at offset 0. A
couple gained the length member in OF 1.4 so we have to check the version
before accessing the length.
loci: add default cases to wire buf accessors

We don't expect these to change again.
loci: fix dump and show for OF 1.4
loci: update OF_VERSION_OKAY macro
loci: initialize match for OF 1.4
loci: extend match_v3 hack to OF 1.4

We should rename match_v3 to match_oxm.
loci: generate per-version match variables in tests

The code using these variables was already generated per version.
test_data: finish C testcase for port_stats_reply
test_data: add more tests for port_status messages

The port_desc becomes variable-length in OF 1.4, making it one of the few
variable-length embedded classes.
loci: add update_offset special case for of_port_desc_t

This code should be replaced with the ir_offset equivalent, but when I tried
that I found subtle differences in alignment and padding.
loci: miscellaneous changes for OF 1.4
loci: remove dead offset macros
loci: remove extra_length

The "extra length" was the total length of members at non-fixed offsets. We're
going to include this in the base length instead.
ir: include external alignment when determining base length
loci: replace calculate_offsets_and_lengths with code using the IR

This function also searched for lists and special offsets. I moved this logic
to analyze_input.