Isolate tests and run concurrently

* Shadows the py.test ``tmpdir`` fixture with our own that returns a ``tests.lib.path.Path`` object.
* Adds a ``virtualenv``fixture which creates a virtual environment in the per test temporary directory.
* Adds a ``script`` fixture which creates an instance of ``PipTestEnvironment`` using the per test virtual environment.
* Adds a ``data`` fixture which copies all of the test data into the per test temporary directory so tests can interact with it.
* Instead of checking out to a shared ``tests_cache`` directory the helpers ``local_repo`` and ``local_checkout`` now cache to a per test specific temporary directory.
* Remove monkeypatching setuptools on travis and simply upgrade setuptools prior to running the tests
* Enables concurrent builds on all Pythons except for 3.2.

The bulk of the work of this PR is in isolating the tests from each other. To do that it uses the py.test ``tmpdir`` to give each test a unique temporary directory and then moves all of the operations that modify the filesystem in any way to take place inside of that temporary directory. It adds some other fixtures and modifies some helpers along the way to make doing that a bit nicer.

The easiest part of the PR was enabling the actual concurrent builds. We use 8 concurrent builds because that seems to give us the most bang for the buck without making PyPy dreadfully slow (I'm unsure of why but using 16 processes made PyPy take twice as long as 8 processes). However I was unable to use concurrent builds on Python 3.2 because of an apparent bug in py.test or pytest-xdist. I will follow up with upstream to attempt to sort out why 3.2 was erroring out and then submit another PR to enable concurrent builds for it. This means PRs still take awhile to pass but at least there is some quick feedback.

![image 2013 08 24 8_55_53 am](https://f.cloud.github.com/assets/145979/1020709/914f6494-0cbc-11e3-9711-778cd6d19292.png)