[relate] handle non-simple Polygons in A/A, NOT FULLY SUPPORTED

Not supported: i/i, non-intersecting rings
[relate] add code ignoring i/i turns, comment out some unneeded code in areal_areal
Merge branch 'develop' into feature/relate
[relate] added more tests for non-simple A/A with holes
[relate] add for now commented out ignoring of u/u turns in A/A, add some tests
[relate] Add support for rings with no turns and some special cases in A/A.

Add support for:
- single geometries for which no turns were generated
- rings for which no turns were generated
- i/i and u/u turns

TODO: some cases where turns are generated for the intersection of a "real" hole and a "fake" hole (self-touching exterior ring).
[relate] Add the support for IPs generated for "real" and "fake" holes.

Rename turns::less_seg_dist_op<> to relate::turns::less<>
It now takes the Comp defining how operations are sorted if segment and distance are equal.
Add 2 different operations comparators for L/L,L/A and A/A.
Add tests.
[relate] Fix wrong type in interrupt_policy for A/A.

Add tests for MLs/MLs, Ring/Poly, Ring/Ring.
[relate] Add optimization to A/A skipping parts of the algorithm if it's not possible to change the final result.

Add may_update() funcionality which may be used if it's possible to change the result for the specified matrix fields and overlap dimension.
Initialize flags in no_turns_aa_pred and uncertain_rings_analyser with values calculated using this functionality.
Add manual checks around the parts of areal_areal::apply() where IPs are sorted and analysed.
Merge branch 'develop' into feature/relate
[relate] Add optimizations for L/A disabling parts of the code if the result mustnot be updated
[relate] add optimization for L/L ommitting parts of the algorithm if the result mustnot be updated
[relate] Fix warnings (unused variables)
[relate] fix: add missing handling of single geometries for which no IPs were generated (exterior ring inside, hole outside)
[relate] add tests for Polygons with rings for which IPs were not generated
[relate] add tests for Poly/MPoly, CCW and open Polygons
[overlaps] add support for P/P, L/L and A/A to overlaps()
[crosses] add bg::crosses() algorithm
[crosses] add missing files required by bg::crosses() algorithm
[relate] fix GCC compilation error caused by a missing #include