Add option to split by class/module + cleanup

We're changing the behavior of class-based splitting here, right? in 1.2., two methods on the same TestCase will always end up on the same node. With this change, they won't. 

Personally, my primary use case is to run a bunch of Django test cases. For those, I want to keep classes together because I use fixtures and running two tests with the same fixtures is faster because we do a transaction rollback. Updating all of my test cases to include `_distributed_can_split_ = False` would be pretty rough.

How do you feel about leaving the current default behavior where tests are not split across classes?

Either way, I think the new version should be 0.2.0 since we're adding a new feature.