Fancy progress

This PR implements fancy progress tracking:

* Progress bar will automatically be shown if the ETA is more than a second.
* Progress will be displayed visually as a bar and also as a percentage number.
* The progress bar displays the ETA (estimated time of arrival). (Though, I'm using the simplest possible formula to calculate it right now.)
* The progress bar will display how long the simulation took after finishing.
* The width of the progress bar adjusts to the terminal width if Python >= 3.3 is used (otherwise it defaults to 80 characters)
* In an IPython notebook a fancy HTML/Javascript progress bar will be rendered.

This PR is an alternative suggestion to PR #476.
This terminal stuff doesn't have to do with Python 2/3 compatibility, so I'm wondering if there's a better place for it. Maybe `stdlib.py`, though it seems a bit different than the stuff in there at the moment. It is kind of similar in spirit to the code determining whether we're in an IPython notebook (both determine things about the Python interface), but obviously this isn't IPython specific so `ipython.py` doesn't seem suitable.