Fix `RequiredAttrs` definition.

The example in python's descriptor tutorial creates a singleton so multiple,
instances share the same attribute. This update fixes the issue based on [1].

[1] http://stackoverflow.com/questions/8718052/where-does-a-python-descriptors-state-go
Fix parameter name in docstring
Add infrastructure for conneting plugin output to a viewer.
Add example of connected viewers/plugins
Dock plugins to image viewer.
Fix sizing of PlotPlugin
Display title in docked plugins
Add smart window-layout for multi-viewer display
Add mock pyqtSignal to try to get Travis to build
Second attempt to get Travis to pass
Third attempt at getting Travis to build
Accidental deletion
Add attributes to Mock object to fix Travis build
Fix PySide compatibility for signal defs
Fix plugin interaction with CollectionViewer

* Signal updates to original image when image changed in CollectionViewer.
* Update plugin arguments for the filter.
* Also fixes image updates when opening a new image from the file menu.
Add example of connecting plugins to CollectionViewer
Fix display of overlay plugin when original image is updated
Fix docstring for CollectionViewer slider.
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).
Fix PyQt4 segfault caused by PySide fix.

I guess PySide saves the QApplication internally, while PyQt4 doesn't.
Saving the QApplication as a global prevents it from getting garbage
collected. Saving the QApplication as an instance variable in the
ImageViewer also works, but that might prevent the ImageViewer from getting
garbage collected in an interactive session. (weakref doesn't seem to work here.)