upgrade test, use git to introspect versions and build an upgrade path
Merge branch 'master' into upgrade_test_fixup

Conflicts:
	upgrade_through_versions_test.py
upgrade test: to determine upgrade path, check for CASSANDRA_DIR
and fall back to DEFAULT_DIR in case it's not defined (same behavior dtest
does in base tester class).

upgrade test, fix one other place that should fallback to DEFAULT_DIR
(if CASSANDRA_DIR is not defined).

upgrade test: tweaks to upgrade path calculation

change start version to start tag, and filter tags based on
semantic version comparison instead of expecting git to return tags in order
(because it doesn't!).
base Tester class init simply getting cluster_options if passed in kwargs
use kwargs.pop(key, default) instead of try except
use safe getters for env config in __get_cluster

then we can avoid nested try except statements, and the code's a bit
easier to grok.
use os.environ.get instead of try/except
makes code a bit simpler and easier to read, and perhaps a little bit safer
upgrade test improvements

upgrade path returns wrapper which includes tag and a semver
upgrade path comes from class, so test classes can alter if needed.
add DDL for upgrade path which starts 1.2+
add murmur test subclass for testing murmur from 1.2+
starting ddl needs to differ for v1.2+

when starting an upgrade test at 1.2+, we need to use the
correct ddl for 1.2+ (since we aren't starting out on 1.1
then migrating up from antiquated schema def).
Merge branch 'master' into upgrade_test_fixup

Conflicts:
	dtest.py
fix base class method name

merged incorrectly and munged the name
change upgrade test strategy

Do full upgrade tests from the head of each relevant branch, to head of
next. Do partial upgrade tests for each branch from a) latest tag to
head of same branch, and also from b) latest tag to head of "next"
branch.
tweak wrapper helper
remove unnecessary debug
formatting
upgrade test helper docstring fix
fix bad var name
docstrings and improved logging for upgrade test
move shuffle and bootstrap testing into point-to-point tests

add callables to be called after upgrade complete
add flag to indicate upgrade is last one (to support above)
adjust some other upgrade logic. for now always check counters,
removed a redundtant cluster.set_cassandra_dir
always upgrade sstables, even if we're testing a mixed upgrade
Merge remote-tracking branch 'origin' into upgrade_test_fixup
new_node helper func tweaks

allow specifying DC, and provide the binary interface details too.