Implementing IPv6 functionality for ipallocator

Closes: https://github.com/docker/docker/issues/6975
Related to: https://github.com/docker/docker/issues/3609, https://github.com/docker/docker/issues/7042, https://github.com/docker/docker/pull/8308

I have extended the ipallocator to support IPv6 addresses and networks and added some tests.

This is the next step to full IPv6 support.
You should use just `return x.SetBytes(ip4)` here and below. Try to avoid redundant elses, just return where you have result.