Refactor WCS handling

This is work in progress, and includes the refactoring carried out during the ALMA software development workshop at NRAO.

cc @ChrisBeaumont - there are still a couple of things to add, but this will then be ready for you to test with glue and optimize if needed.