Add logger class to allow customizing SOCI logging operations.

No big changes yet, but it is now possible to use a custom logger object which
may do something else than just write the query string passed to it to a
stream.

The old behaviour is preserved by using the standard SOCI logger by default
which does write the query to the stream.

-----

This is the first step in addressing #138. This approach should be less disruptive (full backwards compatibility is preserved) than the patch currently there and, eventually, more powerful.