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)`.

@awulkiew You may disregard this. Apparently, `bg::strategy::distance::services::default_strategy` does not do reverse dispatching, so this is actually needed. Not really by our own distance code, but rather for the advanced user who would want to specify the default strategy manually.

I think the correct solution here is to somehow make `bg::strategy::distance::services::default_strategy` do its own reverse dispatching.