[Sprint:37] XD-1791 Add Spark job

 - Add `SparkTasklet` that can run spark application in `client` mode
     - In client mode, the spark job gets executed within container as a job module
 - 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
This could trigger a System.exit call (see: https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/deploy/SparkSubmit.scala)