Coordinates API, take 2

This is a re-working of the coordinates API intended for v0.4 .  It is written to be a "compromise" API to address a variety of problems and suggestions that have come up since coordinates was introduced in v0.2 .  It is a companion to APE5, which will be submitted shortly. 

Note that there are a number of places that have the text ``OPTION`` - these are items where it was not clear if an optional addition is worthwhile or not, so feedback on those, in particular, would be helpful.  While they are mostly relatively minor, there is one possibly major architecture choice: whether parsing of single strings with both ra/dec should be included in the low-level classes, or just the high-level class.  See the document for details on this, but it's definitely a decision that needs to be made.