Testing framework improvements

- Split up test modules according to vcs type.
- Use py.test as the test runner in Travis.
- Add a tox.ini to make testing locally across Python versions easier.
- Run Git/Subversion/Mercurial test cases in parallel (build matrix size = 12)

I wasn't sure about splitting up the VM by VCS type, though it is an example of speeding up things. It took about 5 minutes once the first VM was scheduled. We can see how the build for this PR goes...