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.
Here I had to adjust the order a bit. The old allocator was inconsistent in the way it chose IPs. This test was expecting the allocator to allocate a recently released address. However the [`TestRequestNewIps`](https://github.com/phemmer/docker/blob/run_ip_range/daemon/networkdriver/ipallocator/allocator_test.go#L13) test expects the allocator to continue with the next address, regardless of what has been released.
I can change the behavior so that it re-uses released addresses, but that will break the behavior `TestRequestNewIps` expects.