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.
This looks nasty. Can we split to two lines?