Deprecations and housecleaning

This PR ties up a number of related issues:

- #1961: All backends should work: This removes Qt3, FltkAgg, and Emf and deprecates CocoaAgg.
- #1966: Remove deprecated code: This removes a number of smallish APIs that have already been deprecated.
- #2009: Deprecate the top-level functions in path.py

This also brings over a helper function and decorator originally written by @iguananaut for the astropy project that makes it easier to mark functions as deprecated.  This also unifies the interface for deprecated things and makes it easier to search later for things that are due for removal (that should make this kind of PR a little easier next time).