Implementation of wcs_to_celestial_frame

This is an alternative to https://github.com/astropy/astropy/pull/2681 and uses a function-based implementation. We still need to figure out how to make this extensible, but it is a lot cleaner for dealing with the defaults, etc. so far for FITS-WCS.

* [x] extensibility
* [x] unit tests
Ok, feel free to have a try at generalizing ``_UnitContext``! There is no rush in merging this so we might as well do it properly :) If you don't have time, I can look into it later next week.