IPAddress and IPAddressWithMask updates and fixes

* Provide asCidrPrefixMask to determine if an IPAddress represents a valid CIDR netmask
* cidr prefix length computation was broken:
  + 0 not detected as valid CIDR
  + BigInteger is signed. Grrr
* Add more unit test cases
* Test asCidrPrefixMask

Reviewer: @andi-bigswitch