Set up tests in travis

We want our tests run automatically as part of a CI pipeline.

I have also added pep8 code style checking. I have put no exceptions in
yet, this does not mean that we should not have any exceptions but I
wanted to be sure that we added the exceptions we really want rather
than just a big bucket list.

PEP8 and nose tests are wrapped up in a shell script that Travis calls
to make running the tests in the same way locally simpler.

Tests are run against Python 2.7 and 3.4 as they are the two current
versions. We should be targetting 3.4 but other that may want to use
this could also be using Python 2.7 so it's good practice to work in
both.
PEP8

This commit makes no functional changes it just brings the code base
inline with the PEP8 code style guide
https://www.python.org/dev/peps/pep-0008
Remove second order dependencies

When installing dependencies in Python 3.4 wsgiref==0.1.2 was failing
with a syntax error. According to the PyPi page `This is a standalone
release of the wsgiref library, that provides validation support for
WSGI 1.0.1 (PEP 3333) for Python versions < 3.2.`.
Fixes for Python 3.4

- Relative imports have to be explicit relative imports.
- More explicit distrinction between unicode strings and byte streams.
  Apparent
Add Python 3 cache directory to .gitignore

This should not be added to version control. It's OS and architecture
dependent and can be infered from the source.