Needed to tell controller-gen we're implementing our own marshalling.
Otherwise it fails for newer versions of controller-gen with
```
/go/src/github.com/openshift/installer/pkg/ipnet/ipnet.go:18:2: encountered struct field "" without JSON tag in type "IPNet"
```
The tests that validate CIDRs in install-config.yaml were only testing
empty CIDRs. These changes test non-empty but still invalid CIDRs instead.
The ipnet.ParseCIDR function was changed to use the IP as read from the
CIDR string instead of the IP from the parsed CIDR. This makes the
function consistent with the UnmarshalJSON function.
Much of the code that made of the CIDR validation was there to give a custom
description of what made the CIDR provided invalid. This has been removed in
favor of using the error returned by the golang library's ParseCIDR function.
Additionally, the code to determine whether two CIDRs overlap was unnecessary
complex because it did not take advantage of the fact that CIDRs only overlap
if one is a subset of the other.
https://jira.coreos.com/browse/CORS-850
The issue was a result of IPNet's ParseCIDR() always returning a 16-byte
address, while some third-party libraries assume that the address length
corresponds to whether or not IPv6 is in use.