RectangleSelectionTool

This PR adds a RectangleSelectionTool based on the BetterSelectingZoom tool (thanks @tonysyu for the initial implementation). As such, it includes an `overlay()` method and subclasses `AbstractOverlay` as well as `BaseTool` so that it can be appended both to the tools and overlays lists.

Included is a demo `chaco/examples/demos/basic/rectangle_selection.py` which uses the rectangle tool to select a region in one plot to display zoomed in the other plot.