Enable SparkContext.addJars() to load classes not in CLASSPATH

Currently, `SparkContext.addJars()` does not work for jars which aren't already in the application's CLASSPATH.   This occurs because there is no classloader in the driver to make these jars available to the application itself.  I noticed this during job server development, but this fix is applicable for any Spark applications which desires to load additional jars using `addJars()` instead of putting all the jars in the CLASSPATH or SPARK_CLASSPATH.

Adds an instance of `ExecutorClassLoader` that knows about the jars added via addJar(), to the SparkEnv, and initialize it first thing in SparkEnv, so that all other ThreadPool/ActorSystem initialization will take advantage of the classloader, and user-added jars are made available to all Spark subsystems.