Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
.build/push-artifacts: also push tags

The tags for the loxigen-artfacts repository were generated locally
but not sent to github.
Merge into master from pull request #146:
small fixes, push tags in push-artifacts (https://github.com/floodlight/loxigen/pull/146)
pyloxi: use the ofclass subtemplate for messages

The only difference was the special case for the default XID.
pyloxi: use ofclass subtemplate for OXMs
ir: convert version fields to OFTypeMembers

The frontend gets a new OFVersionMember field type, which is lowered to
OFTypeMember when generating the IR (which is when the version is first known).
pyloxi: use OFClass directly

It now includes everything we need except pyname.
pyloxi: create inheritance hierarchy

Virtual classes are generated but currently only serve as superclasses.

Somehow this works without topologically sorting the classes.
pyloxi: generate virtual class unpack methods

This is done completely from the IR now.
pyloxi: move list unpack functions into util

The goal is to make all module templates identical.
pyloxi: generate all openflow class modules from a single template

common.py and message.py had small amounts of special code left which were
moved into the *_extra.py subtemplates.
pyloxi: remove automatic conversion from str to OFReader

User code shouldn't call these methods directly.
pyloxi: keep track of offset/length ourselves in OFReader

For skip_align to work we need to know the offset from the beginning of the
message, not from the beginning of our OFReader (which might have already been
misaligned).
pyloxi: deal with length fields inside unpack

This will make list parsing much simpler.