Unified error handling in maps.

Uses new exception class osmium::not_found. Prints out the id thats not found.
The values used as the "empty" value is now configurable through the
osmium::index::empty_value<>() templated function.
Use TId and id instead of TKey, key in index maps.

There was a mixture of different uses before. TId/id makes it more clear that
the "key" has to be an integer.
Use TId and id instead of TKey, key in index multimaps.

There was a mixture of different uses before. TId/id makes it more clear that
the "key" has to be an integer.
Fixed documentation of template parameter for typed_mmap.
Only use -Wdocumentation for clang++. GCC doesn't understand it.
Remove noreturn attribute.

GCC only allows it in declarations not definitions.
Fix documentation: @return in wrong position.
Fix some includes and forward declarations.
Fix includes and forward declarations.
Clean up some tests.
Replace use of strcmp() in tests by cleaner CHECK_EQUAL(std::string()).
Use constants for buffer sizes and re-initialize buffer after read().
Use constexpr consts instead of magic numbers.
Retire done() handler call.

Rename it to flush(). It should only be used to flush any data that the handler
might have cached. Final cleanup should be done in handler destructor or other
handler specific functions. This way apply() can be called several times on the
same handlers, for instance for each of several buffers, and after each apply
flush() will be called but not the cleanup.

The multipolygon code has also been changed to take this into account.
Remove macros that were only used once.
Unify macros names.
Use "removed" instead of "deleted" in Items.

OSM objects can be deleted (ie not visible), so we need a different
name for items marked as removed from a buffer.
Add operator<< functions for MemberMeta and RelationMeta for debugging.
Fix bug in collector, add purge stats.
Cleanup collector.hpp