Backend plt/gcf refactor

This is an alternative to #2617.  The idea is to factor Gcf out of the toolkit backends so that the manager classes can be reused in external gui applications.

These changes should be backwards compatible.

Added an example for Qt4 to show how to use the managers in an external program.

Currently only backend_bases, qt4 and qt4agg are done, but the other backends should be doable incrementally. 

The relavent backends are (I think)

- [x] qt4/qt4Agg
- [ ] gtk
- [ ] gtk3
- [ ] macosx
- [ ] pdf (in `PdfPages`)
- [x] ps 
- [ ] tkAgg
- [ ] webAgg
- [ ] wx

This possibly should get a MEP.