Treat Sphinx warnings as errors when building docs on Travis

This pr sits on top of #3737 and #3768 which should be reviewed and merged before this one could be considered.

It does a number of things:

* Fix the last warnings when building html docs by excluding files not in the toc tree. @tacaswell I am not sure how you intended the individual files in api_changes and whats_new to be included in the docs. For now I just excluded them to get a clean build
* Rewrite make.py to use argparse to handle commandline arguments. To make it simpler to extend the cmd arguments.
* Add a warningsaserror flag to make.py (for now it only has an effect on the html docs) defaulta to false
* Turn this flag on when building the docs on Travis. 

I think that it is a good idea to eliminate all the Sphinx warnings when building the docs. The fixes I have made to eliminate them resulted in a number of small fixes to the docs. Broken links, wrongly formatted text etc. The issues are much easier to fix right away in the pull request stage than later (especially since the tracebacks from autodoc are often misleading) So this should ensure that no new Sphinx issues are introduced into the docs.