Make nodetool command work with ipv6 nodes

nodetool appears not to handle ipv6 addresses properly.
Patch submitted:
https://issues.apache.org/jira/browse/CASSANDRA-7669

In the mean time, ccm can use 'localhost' in the nodetool commmand. This
allows the nodetoll jmx url to format properly, and the address to
resolve.
*CAVEAT: user must have <ip> localhost entires in their 'hosts' file for
any node to be commanded.
Merge remote-tracking branch 'upstream/master' into ipv6-support
Adding support for IPV6 addresses

- new ipformat argument for supporting link-specific addresses
    --ip-format='fe80::1%lo0'
- existing api default functionality unchanged
- common.check_socket_available now works with ipv6 addresses
- ipv6 addresses are expanded to match host format from cassandra

also fix arbitrary typo in common.parse_settings
Break after replacing IPv4 option once
Guard against None itf in normalize_interface
simplify zeros string generation in normalize_interface
Fixes #38. Multi-dc tokens are now balanced.

Previously tokens were distributed to balance for a single
DC, regardless of how many exists. This now splits the token range
for each DC, using an offset to prevent token collision. This will
make NetworkTopologyStrategy work correctly with multi-DC, but
will break Simple, though the docs recommend against mixing Simple
across multi-dc's.
Merge pull request #149 from pcmanus/balance_multi_dc_tokens

Fixes #38. Multi-dc tokens are now balanced.
Merge remote-tracking branch 'upstream/master' into ipv6-support

Conflicts:
	ccmlib/common.py
Merge pull request #143 from aholmberg/ipv6-support

Ipv6 support
Added default arg for node.stress

This allows a user to call node.stress(), which works for
C* versions <= 2.0. It was not immediately obvious what should be
passed in if the user does not want any arguments. This makes the
type of stress_options much more clear.
Added test runner class

This will allow us to shutdown clusters on test failure,
as well as add test setup code in the future.
Check logs for exceptions
Change 2.1 stress call

The default stress write call for 2.1 runs far longer
than we need. Now we are only performing 1M operations,
which matches the behavior for the earlier versions.
Added basic tests for restart and multi_dc

Tests are not very rigorous. Better error checking to come.
Corrected dc name in multi_dc test
Added test file for reported issues
Added node.py command for nodetool status

This will allow us to gather nodetool status programatically,
without altering the original nodetool command. This maybe altered
to run any nodetool command in the future.
Hotfix for socket.SO_REUSEPORT

socket.SO_REUSEPORT not supported on all
operating systems. This is suggested as a replacement,
but may not provide identical functionality. Will need
testing by author of #143
Fixes #154