hypermap: coordinate_system prototype

This is hypermap and coordinate_system prototype


Stuart:
ToDo as I think of them:
- [ ] Add a `__get_item__` method that returns sub-hypermaps, needs to create a new coordinate frame from the last one.
- [ ] Write a Map-like factory
- [ ] Look at making HyperMap a subclass of astropy.NDData