Jobs can be stopped (cooperatively) with job.Stop() and job.OnStop()

Signed-off-by: Solomon Hykes <solomon@docker.com>
Engine.Shutdown tries to stop all jobs before waiting for them to retun

Signed-off-by: Solomon Hykes <solomon@docker.com>