[SPARK-2454] Do not assume drivers and executors share the same Spark home

**Problem.** 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.

**Solution.** Simply do not pass the driver's Spark home to the Workers. Note that we should still keep the functionality to optionally send *some* Spark home to the Workers, in case there are multiple installations of Spark on the worker machines and the application wants to pick among them.

**Spark config changes.**
- `spark.home` - This is removed and deprecated. The motivation is that this is currently used for 3+ different things and is often confused with `SPARK_HOME`.
- `spark.executor.home` - This is the Spark home that the executors will use. If this is not set, the Worker will use its own current working directory. This is not set by default.
- `spark.driver.home` - Same as above, but for the driver. This is only relevant for standalone-cluster mode (not yet supported. See SPARK-2260).
- `spark.test.home` - This is the Spark home used only for tests.

Note: #1392 proposes part of the solution described here.