[SPARK-2454] Do not ship spark home to Workers

When standalone Workers launch executors, they inherit the Spark home set by the driver. This means if the worker machines do not share the same directory structure as the driver node, the Workers will attempt to run scripts (e.g. bin/compute-classpath.sh) that do not exist locally and fail. This is a common scenario if the driver is launched from outside of the cluster.

The solution is to simply not pass the driver's Spark home to the Workers. This PR further avoids overloading the usages of `spark.home`, which should now only be used for setting the executor working directory in Mesos.

This is based on top of #1392 and originally reported by @YanTangZhai. Tested on standalone cluster.
This is part of an effort to shift away from calling setSparkHome within Spark at all. After all, all that does is set `spark.home`, which we establish is only for Mesos.