Add vim modeline to constants.py
Add basic ipv6 functions.

- ipv6.validate_ip
- ipv6.ip2long
- Add ipv6 to doctest runner
Reorganize source.
Continue to reorganize source.
Remove old test runner.
Fix flake8 warnings.

Still have a few long line warnings in doctests.
Revamp documentation.
Add support for IPv6 in IpRange and IpRangeList.
Add docs directory to manifest.
Document IPv6 support in CHANGES.
Fix flake8 warnings.
Move sphinx to docs requirements.
Replace xrange() with range() for python 3.2 compat.
Ignore "undefined name" warning from flake8.
Fix flake8 warning about whitespace around operator.
Temporarily disable pypy testing.
Re-enable pypy testing.
Document IPv6 support.
Add special use constants for IPv6.
Support IPv4 mapped IPv6 addresses in IPv4 Range.

When an IPv4 scoped range is checked for the presence of an IPv6 address
and the IPv6 address falls within the IPv4 mapped address block
(::ffff:0:0/96) we will automatically convert the IPv6 address to its IPv4
equivalent before making the comparison. This can be helpful on hybrid
dual-stack machines.