Refactor the job manager to allow multiple execution engines

This change creates an abstract base class that defines three
simple operations on jobs -- run, check status, and cancel. The
existing Oozie implementation becomes one implementation of this
class, and a stub for Spark clusters has been added.

The EDP job engine will be chosen based on information in the
cluster object.

Implements: blueprint edp-refactor-job-manager

Change-Id: I725688b0071b2c2a133cd167ae934f59e488c734
Merge "Refactor the job manager to allow multiple execution engines"