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
```
Whatever you want to call it: the point is that the tests *error* if mpl is not installed (it errors on the above import statement), rather than being skipped.