introducing new API:
* programatic job configuration
* seperating Engine and EngineJob hiding MRJob