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

@fariza PR sent.
Apologies, I have only ever used ``pyplot``, so I had no awareness of other use-cases.  I agree, not good.

The reasoning behind that change goes as follows:
1. Separation between container and contents as a design principle gives greater flexibility to user workflows and allows for example say in the future, to create custom defaults.
2. Ensures that `FigureManager` and `Navigation` both exist before adding tools to them.  I ran into trouble with attaching event listeners to the tools, as the tools got set up too early and created a circular dependency, hitting breaking point in ``ToolBase.set_figure()``.

If you let me know the various other use-cases/entry points, I shall come up with a different solution :D.