Fix cidr function (#1797)
In #1791 we \"fixed\" the cidr function so that it would generate
subnets
correctly. We did not fix it correctly though. This cidr function needs
to match the logic that the CloudFormation Fn::Cidr function has.
Critically the `cidrBits` logic was incorrect. It should be the inverse
of the subnet mask that you want to have for the subnets.
For example a `cidrBits` of 5 means that I want subnets with a mask of
`/27` (32-5=27).
```ts
cidr({
ipBlock: '192.168.0.0/24',
count: 6,
cidrBits: 5,
});
```