Allow passing allocation subnet to `docker run`

This is an extension of PR #5829. This PR allows passing a range of addresses 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.

----

The purpose of this PR is for multi-tenant solutions, where you have multiple products or customers running on a docker host, and you want to be able to add firewall rules per customer. With this, when starting a customer's container, you could pass a subnet, and ensure that their container gets an IP that will be properly matched by a firewall rule or routing policy.

----

*Related: #2801 #6743*
Sure it can.

http://golang.org/pkg/net/#IP.To4

> If ip is not an IPv4 address, To4 returns nil.