first steps to extract FigureManager* and friends from pyplot

This commit refactors backend_bases into two parts, the Gcf
independent parts, which moved to backends/_backend_bases.py, and the
Gcf dependent stuff which stayed in backend_bases.py.  The contents of
backends/_backend_bases.py are bulk imported into backend_bases so
this change should be backwards compatible.

Added an attribute to FigureManagerBase for the _key_press_handler
function.  This might be a stop-gap if the logic in `Gcf.destroy` should
be moved into the FigureManager or canvas classes.
split backend_qt4 into two parts, with and without Gcf

added a static method to FigureManagerQt to gracefully patch in
the Gcf.destroy call back.  As with the _key_press_handler call back
this may be a stop-gap if that logic gets re-factored.
split backend_qt4agg into two parts.

One part (_backend_qt4Agg.py) has no dependencies on Gcf or pyplot,
which are all collected in backend_qt4agg.py.

Should be fully back-wards compatible.
Added a demo-file to show how to use the FigureManager classes to
get pop-up graph windows as part of a larger gui application.
removed un-needed import of Gcf
pep8 on backend_gtk.py

Two line-length violations on long urls in comments are left.
pep8 clean up in backend_gdk
removed un-needed Gcf import

changed imports to _backend_bases to avoid implicit Gcf import
split backend_gcf into two parts,
one which includes Gcf and one that does not.
pep8 on backend_gtkagg.py
split backend_gktagg.py in to two parts

_backend_gtkagg.py has no dependence on `Gcf`, backend_gtkagg.py
depends on `Gcf` and maintains reverse compatibility.
updated exclude list
pep8 clean up on backend_gtk3.py

Same long url as backend_gkt.py is the lone violation
split backend_gtk3 into two parts

_backend_gtk3.py does not depend on `Gcf`.

backend_gkt3.py does depend on `Gcf` and maintains reverse compatibility
updated coding standards