Allow passing allocation subnet to `docker run`

This is an extension of PR #5829. This PR allows passing a subnet to `docker run` for the IP allocator to pick an address from.

Example usage:

````
docker run --ip 172.42.44.10 myimage
docker run --ip 172.42.44.10/32 myimage
docker run --ip 172.42.44.0/24 myimage
````

This obsoletes #5829 as you can pass a specific IP in addition to a subnet/range.

I haven't added anything in the way of documentation. I wanted to put this out in its current form and make requested changes first.
This appears to have been a bug in the original code. By doing the addition after modulo, `pos` can end up being > `max`.