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
I definitely don't think we should hold up merging this ( :+1:  ) but in general I guess we might as well stick with the convention.  If nothing else, it helps clearly separate values we intend to be constants.  Not that it is the bible or anything, but from Odersky's book:

> In Java, the convention is to give constants names that are all upper case, with underscores separating the words, such as `MAX_VALUE` or `PI`. In Scala, the convention is merely that the first character should be upper case. Thus, constants named in the Java style, such as `X_OFFSET`, will work as Scala constants, but the Scala convention is to use camel case for constants, such as `XOffset`.