iPython InputHook Integration

First pass integration with iPython 3.x. A new InputHook is defined for VisPy, and it can be enabled from a magic command or by calling the enable_gui() function. A demo is also included.

Caveats:
* It only works with iPython 3.x, I had to get the master repository from GitHub.  This version has many more features for writing input hooks, and the old 2.x API is deprecated.
* I copied some of @rougier's code and used the same documentation.  I guess this needs to be formatted to VisPy's guidelines?

The demo `interactive.py` enables the input hook manually, but I wonder if this should be auto-detected somehow?
That would be a reasonable approach. However, I noticed something else -- the current approach actually imports and creates an `ipython` instance even for pure Python sessions (assuming the user also has IPython installed). I'm not sure what kind of overhead that will cause / require. How about only going to the `try/except` if `'__IPYTHON__' in dir(__builtins__)`?