First draft of generalized WCS standard.

WIP.

At this point, I'm deliberately trying to avoid some of the rigidity of FITS WCS.  All FITS WCS have a `CDELT` offset and `PC` matrix, for example, as the "core" concept.  But I think that's limiting.  What if you want to correct on the focal plane first, for example?
As for the wiring of different dimensions together, there was some discussion between @embray and @nden and I on the subject, but I don't recall really reaching a "best" solution.   Astropy 0.3.x had one method using dictionaries that map inputs to outputs.  But I understand that's changing in a future version.  Another approach (from data flow languages in signal processing) is to have specific transformations whose only purpose is to take dimensions apart and put them together again.  So you'd have a transformation called "tee" would take an input in 3 dimensions, and output 2 of them, and a "join" transformation that would take a number of dimensions from different transformations and join them back together.  The problem with that approach is that you go from a transformation "tree" to a transformation "graph", which is harder to represent in a serial way.