The Proposed Coordinates API

This PR will contain all work on the coordinates API. The API tests are in a separate PR, and regular tests pertaining to various classes in the coordinates framework will be introduced in this PR.
Comments are very much appreciated!
I would customise these exceptions to explain to the user why it is incorrect.

```python
raise TypeError("zeta is not a valid kwarg when a Representation object is provided")
```