Add tests

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](https://www.python.org/dev/peps/pep-0008) 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.