java_gen/GenericReader: BUGFIX version dispatch for hybrid

This commit fixes a bug in OpenFlowJ's GenericReader. GenericReader
previously dispatched to the version specific readers based on
bb.getByte(0). This turns out to be the first *absolute* byte in the
ChannelBuffer, not the first readable byte at the current readerIndex.

I.e., if several messages were queued in the ChannelBuffer, the Generic
Reader would always dispatch according to the version of the first
message.

In standard use, we pin the OF version after we receive the HELLO
from the switch. Hence, this was not a problem observed in practice.

It could cause problems for hybrid mode connections.
java_gen: API improvements for BundleMessages.

This commit introducesa BundleId class that models the bundle id,
and enables us to use OFBundleCtrlMsg in our usual writeRequest()
framework (in detail, we make the OFBundleCtrlMessage an OFRequest,
its response type is also OFBundleCtrlMsg).

It would be somewhat cleaner from Java's perspective to Factor
out the individual OFBundleCtrlMessage subtypes into their
own request/responses (like we do with flod_mods).
ClassId: output as unsigned int
java: check whether required fields have been set in messages

This helps by raising an NPE early if an incomplete messages is
to be constructed that is missing required members.

Previously, the message construction would succeed, but the
message serialization could fail with an NPE.
Merge remote-tracking branch 'upstream/master' into java-bundle-improvements
Merge into master from pull request #352:
Java bundle improvements (https://github.com/floodlight/loxigen/pull/352)
add polling interval tlv
add comment
Merge into master from pull request #353:
add polling interval tlv (https://github.com/floodlight/loxigen/pull/353)
Auto Negotiation Instruction.
Merge into master from pull request #354:
Auto Negotiation Instruction. (https://github.com/floodlight/loxigen/pull/354)
Added NXMs for source and destination tunnels. These are included by OVS in matches. C and Python unit tests pass. Java unit test fails with masked versions of the NXMs.
Change type of IP values from uint32_t to of_ipv4_t in NXMs, which does fix the Java unit test errors.
Merge into master from pull request #355:
Added NXMs for source and destination tunnels. (https://github.com/floodlight/loxigen/pull/355)
openflow_input: add of_oxm_bsn_in_ports_512

This requires support from the backends for the new datatype.
pyloxi: support of_bitmap_512_t
loci: replace generated match more_specific/overlap code with simple loop

This removes the need to define more-specific/overlap macros for every type. We
can assume that any padding is initialized to zero.
loci: support of_bitmap_512 basic type
wireshark: support of_bitmap_512_t