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

Personally, I say yes!  To me it definitely appears tool specific, so a helper function in ``backend_tools.py`` feels more appropriate...

I don't know the matplotlib codebase too well (only dipped my toe when something didn't appear to work, so reading your PR helps me a lot :)). so I don't know if a better place exists for this code, intuitively I feel one should exist, but meh.  Someone else?

P.S. Slowly making my way through the codebase 3/4 through, I will finish reading, then come back to your other comments, once I feel (more) enlightened with this part of codebase.