Some tweaks to setup and adding index title

This makes a few fairly minor changes that I found made things a bit easier to run locally:

* Moves third-party imports into the `run` methods.  Previously, this made even ``python setup.py --help`` fail with an `ImportError` because if you don't have `runipy` (or ipython) installed.
* Adds runip and ipython to the `setup_requires` in `setup.py` - this makes sure they are available at runtime
* Adds a ``<title>`` to the generated index page and some tweaks to that part of the code.

cc @adrn