Makefile improvements

The current `Makefile` does not automatically create the virtualenv for you when running tests, you have to run:

```
$ make test-install
$ make test
```

It will also not update the virtualenv packages if they change. The current makefile also has weird issues that make the tests always run with python2.7 on Travis (as discovered in #285). Because of this, Travis has it's own steps in `.travis.yml` which are different from the steps in the `Makefile`. Ideally, the process to run the tests should be the same for Travis and the individual developer. 

I've ported the `Makefile` from [a side project][template-python] that I work on. It takes care of virtualenv setup so all that's required to run tests is:

```
$ make test
```

Since it uses the virtualenv that is pre-created by Travis, the issues of running the correct python version are fixed.

[template-python]: https://github.com/jacebrowning/template-python