[buffer] refactor analysis of piece into shorter and slightly more efficient (few %) code.
It is now one function. In later commits we will extend this by checking helper
segments separately, which should also be more efficient.

It changes one test-case, probably because ofn ear_offsetted. The change is not visible
and the result is probably more correct. SQL Server reports this polygon as invalid.
Merge branch 'develop' of github.com:boostorg/geometry into develop