Dgoodwin/events on success

Send events on request or job success only. This should prevent situations where we confuse gutterball should there be any case where we dispatch an event, and the request later fails somehow on commit.

Uses either the guice RequestScope, or a custom PinsetterScope, to ensure that only one instance of EventSink is passed into application code for that request/job. EventSink holds onto the events to be dispatched, which happens in the EventFilter for requests, and the KingpinJob parent class for jobs.
With Logback, we don't need these types of guards.

```java
log.debug("Queing event: {}", event)
```

should do the trick with no penalty in performance.