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

I find this ``from_toolbar`` argument messy, it shouldn't matter where the request to toggle the tool between an on/off state came from.  I can see why you did it but I think, we don't need it, basically rewrite the above if block as:

```python
if self.toolbar:
  self.toolbar._set_state(name, self._toggled != name, False)
```
and create the extra method in Toolbar{Base,GTK3,TK}