Change auto_grow parameter of Buffer from bool to enum class auto_grow.

This makes this parameter self-documenting.
Add enum classes use_nodes and direction for easier linestring creation.
Rename variables so they don't have the same name as the type.
Use switch statement instead of if/else for direction in create_linestring.
Use BOOST_CHECK_EQUAL_COLLECTIONS to simplify filter test.
Location::lon()/lat() can now throw osmium::invalid_location.
Move geometry_error out of osmium::geom into osmium namespace.

Plan is to unify all exception classes and bring them into osmium namespace.