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`.

Ahh okay.  I don't think it has to apply to the specific backends though, just that the logic moves a bit closer to where it gets used, i.e. here in ToolbarBase which should do this work, no need to touch any of the specific backends.

I guess my philosophy for this comes from the thin-controller, thick-model paradigm, viewing NavigationBase as a controller; the specific Toolbars as the views; the Tools as the models; and ToolbarBase as the general model for the specific Toolbars.

From this perspective, the ``Toolbar model has Tools`` associated with it, using OOP terminology. So ``NavigationBase`` becomes the ``ToolManager`` for all tools; and ``ToolbarBase`` knows, as a model, which subset of Tools it has the responsibility of displaying.