Multi linetool drawing

This addresses #1029 and #1030.  I moved blit handling to a separate class used by the `ImageViewer`.  This allows all blitting objects to be handled without conflict.  Additionally, I factored the event handling behavior out of the tools into a separate class also handled by the `ImageViewer`.  This works for all of the current `CanvasTools`, but really this only makes sense for multiple line tools at this point.  The behavior is as follows on a mouse click:

- If the user clicks one of the tool handles, it is selected and set as the active tool.
- If no handles were selected and there is an active tool, redraw it at that point.
- If there is no active tool, use the first tool that does not ignore the event, and redraw it at that point.

Here is what I used to test the behavior:

```python
from skimage import data
from skimage.viewer import ImageViewer
from skimage.viewer.plugins.lineprofile import LineProfile
from skimage.viewer.canvastools import LineTool
import numpy as np

image = data.camera()
viewer = ImageViewer(image)
lp = LineProfile()
viewer += lp

h, w = image.shape[0:2]
x = [w / 3, 2 * w / 3]
y = [h / 3] * 2

new = LineTool(viewer)
new.end_points = np.transpose([x, y])
line, profile = viewer.show()[0]
```