Expand the engine API with 'create' and 'start' jobs

This is in the same spirit as #2352. It inserts the engine as an indirection for creating and starting a container, with minimal disruption on the implementation and code structure.