Added IPv4Address.ofCidrMaskLength() and the corresponding unit tests

Reference:
IPv4AddressWithMask.of(String)
Use the new IPv4Address.ofCidrMaskLength() in IPv4AddressWithMask.of(String)
Added IPv6Address.ofCidrMaskLength() and the corresponding unit tests

Reference:
IPv6AddressWithMask.of(String)
Use the new IPv6Address.ofCidrMaskLength() in IPv6AddressWithMask.of(String)
Renamed IPAddress.fromInetAddress() to of(); added withMask() methods that corresponds to IPv4Address.of() methods
Javadoc updates and consistency fixes; force IPAddress subclasses to override toString(); Nonnull annotations updates
Sanity tests for the IPv4Address.withMask*() syntactic sugars
Deprecate IPv4AddressWithMask.of(int,int)

Replaced by IPv4Address.of(int) + IPv4Address.withMask(int)
One more syntactic sugar - IPv4Address.withMask(IPv4Address)
Rephrased some Javadoc for clarity and readability
Fix Javadoc typo
Further Javadoc enhancements for IPv4Address / IPv4AddressWithMask
Fix error message typo
Added Javadocs to IPv6Address.of() similar to IPv4Address.of(); also added of(Inet6Address)
Enhance Javadoc for IPv4Address.ofCidrMaskLength()
Update IPv4Address.withMaskOfLength() Javadoc
Have IPAddress.of(InetAddress) leverage the new IPv4Address.of(Inet4Address) and IPv6Address.of(Inet6Address)
Address reviewer's comments floodlight/loxigen#297

Reference:
https://github.com/floodlight/loxigen/pull/297
Use IPv6 subnet mask calculation as suggested by @andi-bigswitch

Reference:
https://github.com/ronaldchl/loxigen/commit/fea1789f36d0edba5cf991ff0a953e9ef445f078#commitcomment-6923088
Use -1L instead of (long) -1