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.
Is there a circumstance where this can be null?  Guice should guarantee an instance of the provider shouldn't it?