How ipython works

Work in Progress: Project Jupyter Overview and Orientation Documentation

[Quick link to the rendered version](https://github.com/brandon-rhodes/ipython/blob/how_ipython_works/docs/source/development/how_ipython_works.rst)

----

All,

This pull request is for the orientation documentation begun during the SciPy sprints. So far I have tried to capture the information shared with us during the sprint by Fernando in addition to some historical bits gleaned from presentations ([here](https://speakerdeck.com/fperez/project-jupyter) and [here](https://speakerdeck.com/fperez/pydata-2013-keynote-ipython-and-friends)). I'm submitting this PR at Fernando's request to provide some visibility and a forum for comments.

It is obviously rough, but hopefully provides enough structure and substance to determine if I am headed in the right direction or not. For expediency's sake I have used ASCII art for some of the figures (woot!); we've also got some figures drawn by Ed Pierce that I need to wrangle out of the email.

Here's [Olga's original PR](https://github.com/ipython/ipython/pull/5665)

IPython is awesome! Thanks for the opportunity to make a small contribution!
dan

/cc @fperez
I think the mention of colour output is confusing. We don't colour the output of any Python commands. Some system commands have coloured output, but that's not our doing: commands like `ls` produce output which the terminal interprets to produce colours.