Zero out padding bytes in buffers.

This isn't strictly necessary, but it makes comparing objects and buffers much
easier.
Use bit fields in osmium::Object class.

This is much better than doing the bit arithmetic ourselves.
Fix spaces
Use template template parameter in mmap_vector_* classes.

The fully qualified names in the constructor are a workaround needed for a bug
in clang. See
http://stackoverflow.com/questions/17687459/clang-not-accepting-use-of-template-template-parameter-when-using-crtp
Change minimum GCC version from 4.7 to 4.8.

There are some bugs related to exception specification in 4.7 that prevent
compiling of some parts.
Add unsigned_object_id_type

This can be used when we are sure (or want to be sure) that object IDs are
positive. We'll need this for indexes. This commit also adds some documentation
to the Object class.
Use unsigned_object_id_type in Map and Multimap classes.

These classes and their derived classes can only handle positive IDs.
Use right capacity when mmaping files.
Open index files read/write because they are mmaped r/w later
Use dense/sparse instead of array/list in osmium_index.
Add Hybrid multimap index.

This index class ties together two other indexes, one dense and one sparse, to
make dynamic updates reasonably fast while keeping the space efficiency of the
dense index.
Add hybrid include to osmium_serdump