XD-1791 Add Spark job

 - Add `SparkTasklet` that can run spark application in `client` mode
     - In client mode, the spark driver gets executed within XD container as a job module
     - workesrs run locally for master set to local
     - workers run on cluster for master set to spark or mesos URLs
     - yarn-client and yarn-cluster are not supported

 - Add module options to provide
     - master: to point to spark master
     - mainClass: the main class for the spark application
     - appJar: the bundled jar for the application and its dependencies
     - programArgs: the comma separated program arguments for the main class
     - name: the name of the Spark application
     - files: comma separated list of files to be placed in the working directory of each executor
     - conf: comma seperated list of key value pairs as config properties

 - Logging and handling of logs from Spark application execution
     - logging at error level when exit code != 0
     - logging app completion message at info level
     - logging Spark log at debug level
     - storing Spark command in step execution context
     - storing Spark log in step execution context