Rearrange AbstractBackgroundJobManager to let subtypes deal with events

Subtypes need the job ID before creating the context and then
the subtypes have hooks they can send events in.
Fix warning about catching "_"
Move AbstractBackgroundJobManager from plugin to interface

This makes it available to sbt.server
Add BackgroundJob-related events, and server JobManager

Not yet sending the job started/finished events, because
we need to rearrange something to be able to get the
execution ID that generates the background job.