Support running on Mesos

Added support to run on Mesos
If necessary, you could add a `SparkCluster` abstract base class that's extended by `MesosCluster` and a new `SparkStandaloneCluster`.