Split up `requirements.txt`

`requirements_test.txt` has all of the stuff required for running tests,
and `requirements_extra.txt` has extra tools useful for development.

`requirements.txt` is all that's necessary to install on the production
server. Travis-CI also needs `requirements_test.txt`.
Update .travis.yml

Travis-CI needs to install all of the test requirements.
Fixed conflicts for requirements.txt