The client now takes a reference to logger

We don't want to reference the global singleton logger, so
we'll take it in the constructor.

This also means the default one in Worker#initialize needs
to inject the global logger.