MEP22 Navigation toolbar coexistence

This version of the MEP22 implementation https://github.com/matplotlib/matplotlib/wiki/Mep22#implementation 

The proposed solution is to take the actions out of the `Toolbar` and the shortcuts out of the `Canvas`. This actions and shortcuts will be in the form of `Tools`.

A new class `Navigation` is the bridge between the events from the `Canvas` and `Toolbar` and redirect them to the appropriate `Tool`.

Very nice!  Have greatly enjoyed looking at these actual tools, so much nicer with the new API.  Though what do you think about adding an extra layer of inheritance for ToolZoom?
```
... -> ToolToggleBase -> ToolAreaSelectBase -> ToolZoom
```
I see selecting an area using a rubberband as a very nice (and powerful) feature, and thus a shame to keep it wrapped up in one specific tool.  The ``ToolAreaSelectBase`` class would concentrate on just getting the set of coordinates ``_xypress`` for descendent classes, like ``ToolZoom`` to use.

As the rubberband only behaves as a tool specific function, I would consider moving it into the tool, preferably into``ToolAreaSelectBase`` (if you like this idea).