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

https://issues.apache.org/jira/browse/SPARK-2608
This is the updated version of https://github.com/apache/spark/pull/1513

Mesos scheduler backend use spark-class/spark-executor to launch executor backend, this will lead to issues:
1 when set spark.executor.extraJavaOptions CoarseMesosSchedulerBackend will throw errors because of the launch command "./bin/spark-class org.apache.spark.executor.CoarseGrainedExecutorBackend %s %s %s %s %d").format(basename, extraOpts, driverUrl, offer.getSlaveId.getValue,offer.getHostname, numCores))

2 spark.executor.extraJavaOptions and spark.executor.extraLibraryPath set in sparkconf will not be valid
i am wondering it will be ok if set ```PYTHONPATH``` to environment as flowing
``` scala
    val environment = Environment.newBuilder()
    sc.executorEnvs.foreach { case (key, value) =>
      environment.addVariables(Environment.Variable.newBuilder()
        .setName(key)
        .setValue(value)
        .build())
    }
    environment.addVariables(Environment.Variable.newBuilder()
      .setName("PYTHONPATH")
      .setValue(sys.env.getOrElse("PYTHONPATH", ""))
      .build())
```