Fix/distance spherical

This PR fixes the issue from https://svn.boost.org/trac/boost/ticket/10421

The first commit disables the generation of cartesian default strategy for distance(Point/Box) and distance(Box/Box) for non-cartesian CS. The default strategy is retrieved taking into account the CS of Geometries like in all other cases.

The second commit adds the distance(Point/Box) strategy for spherical CS. It should be optimized and tweaked (see the TODOs). It uses side_by_cross_track and distance_cross_track so calculates the same thing twice. For this as much reusable code as possible from those strategies should be extracted and reused in all of those strategies. For instance there are 2 implementations calculating the course(), returning different types. It should probably be unified into `bg::detail::course<CalculationAndReturnType>(Pt1, Pt2)`.

Yes, this should be a library-wide change. And we should clean up the numeric_limits<> usage as well. But as you said, not in this PR.