Add more unit tests, coverage reports and fix some errors

I've sent a separate mail to dev@openstreetmap.org considering this pull request. It contains:
* unit tests for the object class
* unit tests for filename detection
* unit tests for basic file IO
* a Makefile for building all tests at once (whole test suite runs faster)
* a method to generate coverage reports

programming this I noticed and corrected the following bugs:
* object.hpp: m_visible can only be set to false
* osmfile.hpp: if child process exits with error, ernno doesn't contain a valid value
* osmfile.hpp: filename_without_suffix() didn't work as intended