supervisor.exec_config refactor - no tests (review)

`supervisor.execute_launch_config` returned `Deferred` that fired back with job id and completion deferred. The job id was used by `_Job`. Now, it only returns completion and job id knowledge moved to `_Job`. This way code is simpler. This is based on discussion in https://github.com/rackerlabs/otter/pull/646#discussion-diff-13937435. Unfortunately, most of the discussion happened offline. 
> so you can test that this deferred is in the job pool before it gets started

The deferred should be added to the pool only after all the other callbacks (state updation) have been added. Otherwise, it will be removed from the pool before any of the processing completes. 

> Also, it can be added to the DeferredPool before it's callbacked (kicking off the actual job process)

Same as above. It needs to be added after all the callbacks have been added.