SPARK-1286: Make usage of spark-env.sh idempotent

Various spark scripts load spark-env.sh. This can cause growth of any variables
that may be appended to (SPARK_CLASSPATH, SPARK_REPL_OPTS) and it makes the
precedence order for options specified in spark-env.sh less clear.

One use-case for the latter is that we want to set options from the command-line
of spark-shell, but these options will be overridden by subsequent loading of
spark-env.sh. If we were to load the spark-env.sh first and then set our
command-line options, we could guarantee correct precedence order.