[SPARK-2608] fix executor backend launch commond over mesos mode

based on @scwf patch, rebased on master and have a fix to actually get it to work.
It failed to run with a single mesos master/slave without the fix.
I don't think `sparkHome` works for the `uri != null` branch. Since executors inherit their `spark.home` property from the driver, but in case of Mesos, each executor has it's own Spark home in its own sandbox directory. That's why `basename` and the `cd %s*` trick is used here.