A CIDR block of either IP version.
This is a union of Cidrv4 and Cidrv6, useful for functions
that operate on CIDR blocks regardless of IP version. Use the
isCidrv4 and isCidrv6 type guards to narrow. Each half
is itself a union of the prefix-length and mask dialects, so a Cidr
has four shapes and every operation here accepts all of them.