Fix/disjoint

PR fixing Areal/Areal version by replacing `point_on_surface()` with `point_on_border()` and `within()` with `covered_by()` for backward compatibility (https://svn.boost.org/trac/boost/ticket/8310).

Related to https://github.com/boostorg/geometry/pull/159 and https://github.com/boostorg/geometry/pull/162.

Yes, `has_within` should be checked and calculation done only if disjoint wasn't detected before. That's not all, the function should return right away when it's 1st time set to true. This was possible also in the old version.

With that said, dispathing this algorithm for MultiPolygon doesn't seem to be that bad idea. An alternative would be to have `for_each_range_if()`. But for now I'll just apply your suggestion.

Btw, there is no `||=` operator, however undoubtedly it'd be useful :)