[buffer] Classify turn-points using rescaled rings
This makes side_on_convex_range and intersection_side redundant
It fixes all but one (p20) remaining cases for polygons
Merge branch 'develop' of github.com:boostorg/geometry into develop
[for_each] Move from multi/ and drop TypeOf dependency
[unique] Move from multi/ and drop TypeOf dependency
[transform] Move the code from multi/ and drop TypeOf dependency
[reverse] Move the code from multi/ and drop TypeOf dependency
[algorithms] Move the code of some algorithms from multi/ and drop TypeOf dependency.

Algorithms moved: correct, envelope, equals, length, num_geometries, perimeter, remove_spikes.
[algorithms][multi] Move the code of some algorithms from multi/ dir and drop TypeOf dependency.

Modified algorithms: area, centroid, clear, convert, length, perimeter, simplify.
Update included headers paths to reflect the changes.
[point_in_geometry] Fix compilation error - replace BOOST_AUTO_TPL - drop TypeOf dependency
[test] Fix compilation error in pythagoras distance strategies tests - missing TypeOf header
[within] Remove not needed TypeOf header
[algorithms/detail] Add interior_iterator<> tool and use it in places where BOOST_AUTO_TPL was used to get rid of unreadable, long types
[buffer] Cleanup comments/unused functionality
[buffer] Occupation map now makes use of robust points
(this adds one failing testcase, to be investigated,
 but further simplifies/enhances all code)
[io] Drop TypeOf dependency. Add detail::interior_ring_iterator<>.
[algorithms] Drop TypeOf dependency
[algorithms/detail] Rename const_conformant<> to copy_const<> and implement it without MPL and TypeTraits
Merge branch 'develop' of github.com:boostorg/geometry into develop
[get_left_turns] reimplement using integer arithmetic
including unit test
[buffer] Remove occupation_map, use std::map instead
turn_indices from occupation_map were not used anymore