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?
Nothing in `ext` should have external dependencies (they need to be self-contained) -- the idea of `ext` is to get rid of external dependencies. `ext` is short for "external", as in something we've taken from somewhere else (more or less). What you have here is a set of functions that are designed to *use* things from a different library in some way. The functionality that is part of some other library that we want to port should live in `vispy/ext`, the parts that actually *use* the functionality of said library should live somewhere in `vispy` that isn't `ext`. In this case, it means that this file that you've created should be in `vispy/app/` somewhere, and the `inputhook.py` file that the IPython folks wrote (from `IPython/lib/inputhook.py`) should be moved here, and this file should import from `..ext.inputhook`. Make sense?