Make ci builds faster by splitting requirements

Make travis builds faster by splitting requirements into
requirements-travis.txt, which contains all the requirements necessary
for running tests, documentation related packages are omitted and added
as a part of requirements-dev.txt

Additionally .travis.yml is modified to cache pip downloads, though this
feature is yet to be rolled out for the free tier
Merge branch 'master' into pr/599