java_gen: introduced HashValue type

This is a contract for types that support bit-wise operations
to support calculating and manipulating hash values.
java_gen: implement HashValue protocol
java_gen: renamed OFChecksum128 to U128 + implement HashValue

This has the same semantics as our other Uxx types.
java_gen: bump version to 0.3.5-SNAPSHOT

due to OFChecksum128 -> U128 rename in commit 7c15b1725 .
java_gen.HashValueUtils - prefixBit - remove useless hash value, add unit test

Also fix numBits==0 corner case bug discovered by unit test
U128: fix signedness bug in compareTo

compareTo was not correctly handling values that have the signedness bit set.
Merge into master from pull request #258:
java_gen: Hash-related functions for U64, renamed OFChecksum128 to U128 (https://github.com/floodlight/loxigen/pull/258)