matplotlib/matplotlib — pull request #2740 by fariza (2014-01-17 00:06:02+00:00)
Title: MEP22 first draft (DO NOT MERGE)

This is the first draft for the MEP22,

The idea is just to look for the new organization of stuff.
**The only backend working is GTK3AGG, everything else is broken**

The simple example is `user_interfaces/navigation.py`

Basically I added
* Navigation (base and GTK3)
* Toolbar (base and GTK3)
* Tools: The base and all the tools that were in the original toolbar

The`FigureManager`, instantiates `Navigation`

`Navigation` takes cares of the
* instantiate toolbar
* keypress (previously done by keypress handler)
* toolbar events
* drawings (previously done by NavigationToolbar)

There are several kinds of `Tools`
* `ToolBase`: just called onece and do what it has to do with self.figure, self.navigation and event in the `action` method
* ToolToggleGrid
* ToolToggleFullScreen
* ToolQuit
* ToolEnableAllNavigation
* ToolEnableNavigation
* ToolToggleXScale
* ToolToggleYScale
* ToolHome
* ToolBack
* ToolForward
* SaveFigure
* `ToolPersistentBase`: Is instantiated and then it is called activate when used, so the instance is keept alive
* ToolZoom
* ToolPan
* `ToolToggleBase`: Is a persistent tool, but can take control of the mouse events, plus only one toggle tool can be activated at any time. it has to be deactivated before other toggle tool can be used.
* ConfigureSubplots

More complex stuff is comming
* Toolbar reconfiguration
* Navigation reconfiguration
* etc...

**But I would like to have some feedback on the organization before anything else**