OCSADV-27: Declination limits and Coordinates Difference

On this PR the limits for declination or changed to allow 90 degrees and CoordinatesDiff is rewritten in Scala using the new model classes

I wish I could do more thorough tests but I couldn't find the source of the algorithm nor some well known table of differences to compare
Putting it inside `Coordinates` seems fine to me, but it's more than just the angular separation between two coordinates.  I think maybe we should stick with the name `Difference` or something similar.  That is, it needs to include the position angle in degrees east or north and a way to get the offset in p and q.