Add Viewer Tests

Substantial effort to add tests to the `viewer` module.  This should actually supersede #1064.  

I had to make a few small changes to tested files, but the only real bugs I found were in `lineprofile` and `ComboBox`.  When `limits=None` in `LineProfile`, it was not setting `self.limits`.  With PyQt4 I did not have a `value` attribute on the `QComboBox`.  Also added the changes from #1064 to allow the `LineProfile` to use the updated image.

All tests pass with PyQt and PySide.  Here is the coverage I'm getting:

```
skimage.viewer.canvastools                     3      0   100%   
skimage.viewer.canvastools.base               86      5    94%   5-6, 95, 164, 167
skimage.viewer.canvastools.linetool           98      9    91%   5-6, 62-63, 87, 99, 105, 107, 170
skimage.viewer.canvastools.painttool         106     13    88%   77, 101-102, 125-127, 131, 137, 142-144, 149-150
skimage.viewer.canvastools.recttool          119     10    92%   3-5, 65, 135, 137-138, 148, 170, 183
skimage.viewer.plugins                         9      0   100%   
skimage.viewer.plugins.base                   98      6    94%   16, 99-100, 152-153, 250
skimage.viewer.plugins.canny                  18      0   100%   
skimage.viewer.plugins.color_histogram        48      1    98%   82
skimage.viewer.plugins.crop                   23      0   100%   
skimage.viewer.plugins.labelplugin            39      2    95%   51, 59
skimage.viewer.plugins.lineprofile            86      1    99%   53
skimage.viewer.plugins.measure                31      0   100%   
skimage.viewer.plugins.overlayplugin          58      5    91%   42-43, 84, 109-110
skimage.viewer.plugins.plotplugin             30      0   100%   
skimage.viewer.qt                             16      7    56%   10-18
skimage.viewer.qt.QtCore                      16     10    38%   4, 12-22
skimage.viewer.qt.QtGui                        8      4    50%   4, 9-11
skimage.viewer.utils                           1      0   100%   
skimage.viewer.utils.core                    102     11    89%   13, 18-23, 51, 53, 67, 83-84
skimage.viewer.utils.dialogs                  22      4    82%   32-35
skimage.viewer.viewers                         1      0   100%   
skimage.viewer.viewers.core                  190     19    90%   10, 48-50, 117-121, 180, 182, 200, 202, 213, 238, 279-280, 290-291, 374-376
skimage.viewer.widgets                         2      0   100%   
skimage.viewer.widgets.core                  130     10    92%   41-42, 119-120, 135-136, 150, 177-179
skimage.viewer.widgets.history                71      3    96%   86, 88, 92
```
Isn't most of what can be done with the viewer dependent on matplotlib?
That was the qt api workaround suggested to us; I wonder if the viewer
should just depend on matplotlib.
On Jul 16, 2014 10:17 PM, "Juan Nunez-Iglesias" <notifications@github.com>
wrote:

> In skimage/viewer/tests/test_plugins.py:
>
> > @@ -0,0 +1,180 @@
> > +# -*- coding: utf-8 -*-
> > +import numpy as np
> > +import skimage
> > +import skimage.data as data
> > +from skimage.filter.rank import median
> > +from skimage.morphology import disk
> > +from skimage.viewer import ImageViewer
> > +from skimage.viewer.qt import qt_api
>
> This will fail if matplotlib is not installed... See #1060
> <https://github.com/scikit-image/scikit-image/pull/1060>. Perhaps we
> should find a different check for qt?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/scikit-image/scikit-image/pull/1072/files#r15039600>.
>