loci: fix byte swapping on OS X

The endian.h functions don't exist on OS X, so use the LOCI versions instead.
Also change the byte order macro used to one that's defined on both Linux and OS X.
loci: rename ASSERT to LOCI_ASSERT

This was polluting the namespace.
loci: rewrite assertions

Assertion failure now calls abort() instead of dereferencing a null pointer.

The noreturn attribute is important for static analysis.
README: add maven prerequisite
Merge into master from pull request #204:
java_gen: Return copies of byte arrays in getBytes LOXI-58 (https://github.com/floodlight/loxigen/pull/204)
Merge into master from pull request #205:
loci: rework assertions for better static analysis (https://github.com/floodlight/loxigen/pull/205)
Merge into master from pull request #206:
README: add maven prerequisite (https://github.com/floodlight/loxigen/pull/206)
add debug as pktin reason
Merge into master from pull request #208:
add debug as pktin reason (https://github.com/floodlight/loxigen/pull/208)
loci: add a function to parse messages without allocating memory

This will be used by the Indigo connection manager to parse messages directly
from the read buffer, saving three allocations and a memcpy.
Merge pull request #6 from floodlight/master

Merge from upstream.
removing undesired padding from action_id structs
Merge into master from pull request #209:
loci: add a function to parse messages without allocating memory (https://github.com/floodlight/loxigen/pull/209)
loci: chunk multiple classes into each C file

Parsing headers was taking more than half of the compile time for many classes.
By putting multiple classes into a single C file we amortize the cost of header
parsing. These C files are still much smaller than the old loci.c.

I also experimented with chunking the list and header class files, but there
are relatively few of these and so there was little gain.

The code size reduction is presumably due to better sharing of code between
similar classes. Since the classes are sorted by name before chunking the
action, instruction, etc inheritance hierarchies will be grouped together.

Results:
time make -j4 loci.a: -44% (27.4s to 15.4s)
strip loci.a && du -sh loci.a: -25% (2.3 MB to 1.7 MB)
removing instruction_id. Instructions don't seem to act like actions.
removing tmp comments
removing OFPadMembers before calc_lengths is called
removing comments and unused import
adding test case for action_id_output
adding java test