Add a pluggable logging interface.

Allow the client to specify where to send logging information
from the driver to.

Supports syslog level of output and the "log/syslog" logger.
The default output is a log.Logger which outputs all events
which are more severe than Errors.

The logger should be setup before the cluster is initialised as
it is not threadsafe.