Improved mp test case handling
Various fixes, cleanups, algorithm changes. A mess...
Improved mp algorithm
Add intersection test
Find and remember problem points in mp assembler.

Segment intersections and points where rings are open are detected and stored
in the assembler. Later they can be read out and displayed.
Move ProtoRing class into its own hpp file
Fix some includes
Write out problem lines, too
Improve debug logging and make it optional in mp assembler.
Better debug output for illegal area geometry
Fix check for uid in dense node pbf input.

Some software uses -1 as the anonymous user id. This case is not documented in
the PBF spec.
Misc fixes and code cleanups
Replace dummy code to find outer ring by the real thing.

This is very ugly code currently. Needs some cleanup.
Remember first segment in ring so we don't have to find it again.
Cleanup find_outer() function
Refactor code concerning first segment in ring
Make m_first_segment const
Improve compare-multipolygons make target
Add debug option to osmium_toogr2 example
Cleanup of assembler code.

The assembler will now break off assembling the multipolygon if there are any
intersections between segments. All those are invalid.