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
I try to avoid negative `if` conditions and recomputing values.

```scala
val dist = {
  val acos = Math.acos(cosd)
  if (acos.isNaN) 0 else acos
}
```