ENH: Add canvastools subpckages with base class and line tools
BUG: Move callback connection to parent class
STY: Reuse ThickLineTool in LineProfile
BUG: Fix blitting behavior in canvastools
STY: Refactor parts of LineTool to CanvasToolBase
BUG: Clean up imports
Fix figure canvas creation.

Avoid use of matplotlib's pyplot functions for creating figure canvases. In particular, key press events were ignored by the canvas.
BUG: Allow slider to accept key press events
ENH: Default to blitting

Since the Qt4 Agg backend is always used, it's always safe to use blitting.
BUG: Fix background update when canvas resized
STY: Remove commented out code
BUG: Fix blitting behavior
STY: Clean up unused blitting-related code
STY: Minor code clean up
ENH: Draw new line when click is far from handle
STY: Remove reset functionality in line tool

Since a line can be draw without selecting handles, the reset functionality doesn't seem necessary.
ENH: Increase default selection threshold for ease of use
STY: Rename line_tool module to linetool
ENH: Add measure tool plugin
STY: Refactors general parts of line tool to base tool