Fix execution in IPython with qt backend.

New QApplication and event-loop implementation stolen shamelessly from
IPython. Strangely, running the viewer at the IPython prompt will
open an orphan Matplotlib figure window, but running a script using
`%run` does not.

Only tested on PySide (not PyQt4).