OCSADV-27: Port of CoordinatesDiff to scala and updates to Declination limits

This is take 2 of the port of coordinates diff. CoordinatesDiff has become an inner class `Coordinate.Difference` and it includes the `Offset` calculation

Several suggestions were incorporated to improve the calculation logic
In practice you would always prefix `Whatever.zero` because the name is reused a lot; this was my intent with all the `.zero` instances in Core. But I'm fine with `Zero` if we want to change them.