java_gen: Fixed bug in Ipv[46]AddressWithMask when mask == /0

Both IP address parsers treated the case mask == /0 incorrectly.
Fixed the behavior and added to the unit tests.
Clean up the IPv6 unit test.
java_gen: value types: add NO_MASK, FULL_MASK constants where missing

This is necessary so types can distinguish non-canonical forms.

Conflicts:

	java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/LagId.java
	java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBooleanValue.java
java_gen: add support for properties to specify a custom code template

This will be used for getCanonical()
java_gen: OFOxm: add 'canonical' virtual attribute, test

This enables OFOxm objects to return a 'canonical' representation,
where trivial masks (all-0, all-1) are converted to the main
representation.

Conflicts:

	java_gen/java_model.py
java_gen: OFOxmList: canonicalize OFOxms on build()

Conflicts:

	java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/OFOxmList.java
java_gen: MatchV3.builder() - remove synchronized

Builders are only safe for use in a single thread anyway. No
need to synchronize.