[SPARK-1395] Fix "local:" URI support in Yarn mode (again).

Recent changes ignored the fact that path may be defined with "local:"
URIs, which means they need to be explicitly added to the classpath
everywhere a remote process is started. This change fixes that by:

- Using the correct methods to add paths to the classpath
- Creating SparkConf settings for the Spark jar itself and for the
  user's jar
- Propagating those two settings to the remote processes where needed

This ensures that both in client and in cluster mode, the driver has
the necessary info to build the executor's classpath and have things
still work when they contain "local:" references.

On the cleanup front, I removed the hacky way that log4j configuration
was being propagated to handle the "local:" case. It's much more cleanly
(and generically) handled by using spark-submit arguments (--files to
upload a config file, or setting spark.executor.extraJavaOptions to pass
JVM arguments and use a local file).

So here's what's happening.

`prepareLocalResources()` propagates some settings (previously `CONF_SPARK_YARN_SECONDARY_JARS`, and now the two new settings I'm adding) using SparkConf.set. In cluster mode, `createContainerLaunchContext()` propagates only things that are set as system properties, so those config options are not provided to the executors. So if your executor depends on something that is in those options, it will fail.

I'll double-check whether `SPARK_JAVA_OPTS` works as before and make adjustments if necessary, but the change is needed for things to work correctly.