Add a logger delegate class for logging.

I'd like to be able to swap out the logger for something more exciting that just the watchdog, and I have the need to log success messages, so I figured that a nice way to supply this would be via a logger delegate class that can be easily swapped out.

lets return early if possible, i.e.

```php
if (!empty($this->logger) {
  return $this->logger;
}

...
```