Setup tox so that it matches current state of the art for testing

* Uses parallel testing where it's able to
* Sets PYTHONHASHSEED=0 Where it's required
Switch travis to use tox to drive the tests

Using tox to drive the tests instead of travis itself means that
we only need to configure how to run tests in one location. We
use tox for that location because tox can run on developer machines
as well as on travis so it has the best reusability.
Ignore the directories that tox creates
shutil.ignore_patterns does not want trailing slashes

A trailing slash in a directory name is essentially a noop unless
the directory name itself contains a trailing slash.
Fix the exclusion patterns

We need the docs directory for ``python setup.py``
Properly raise an error when it happens
Document the usage of tox to run the tests
Test the collection of tests

This is to workaround pytest issues #149 / #180 where distributed
testing doesn't error out if it fails to collect tests.
Test that the documentation builds successfully
Merge pull request #1173 from dstufft/use-tox

Configure Tox and Use It to Drive Travis