Multiprocessing

Add capabilities to specify local repairs, snapshots, verbose and debugging messages, a specific nodetool command to use, and multiple workers.

If you attempt to use this as you did before, the only difference you should encounter is that -local and -snapshot are no longer the default.  You have to specify them on the command line if you want them (--local and --snapshot, respectively).

--workers uses the multiprocessing module to run multiple repairs simultaneously.  You should use this judiciously, as each repair is a separate python+java(nodetool) running on your host, in addition to everything else that's going on there.  A reasonable first choice might be the number of CPUs you have.

Also, there was a range boundary bug that meant no range repair was ever attempted between TOKEN_MINIMUM_VALUE and LOWEST_ASSIGNED_TOKEN_IN_RING.