Upgrade test fixup

Revamp upgrade tests. This introduces dynamic test creation via runtime class-creation (nose1 doesn't support test generators in subclasses of unittest.TestCase). Though this approach will probably be harder to debug, it will force us to keep tests relatively generic which is a plus. And we get new tests "for free" by simply adding new versions at the top of the module.

Here's an inventory of upgrade tests at this point -- I didn't create all of these, I mostly extended the tests to more versions:

end-to-end upgrade tests through the HEAD of each branch (starting with 1.1 on RandomPartitioner)
end-to-end upgrade tests through the HEAD of each branch (starting with 1.2 on Murmur3Partitioner)

"point to point" -- aka tests doing a single upgrade from one version to another:
Latest tag to head of same branch
Latest tag to head of next branch
head of one branch to head of next
head of one branch to latest tag on next

Moved shuffle testing into point-to-point tests, and made some improvements.
Moved bootstrap testing into point-to-point tests.
Improved counter increments and verification.

Stuff that's still needed:
Multi dc tests (bootstrap and shuffle) need more work to function, so they are skipped for now.
Lots of other stuff I didn't think of.