[SPARK-4229] Create hadoop configuration in a consistent way

So let me see if I have things straight

- Currently, the code is using new Configuration() as a default, which may have some thread safety issues due to the constructor

- my original patch uses SparkHadoopUtil.get.conf, which is a singleton, so should decrease the constructor thread safety problem, but increase the problems if the hadoop configuration is modified.  It also won't do the right thing for people who have altered the sparkConf, which makes it no good (I haven't run into this in personal usage of the patched version, because I always pass in a complete sparkConf via properties rather than setting it in code)

- @tdas suggested to use this.sparkContext.hadoopConfiguration.  This will use the "right" spark config, but may have thread safety issues both at construction the time the spark context is created, and if the configuration is modified.

So....

Use tdas' suggestion, add a HadoopRDD.CONFIGURATION_INSTANTIATION_LOCK.synchronized block to SparkHadoopUtil.newConfiguration?  And people are out of luck if they have code that used to work because they were modifying new blank instances of Configuration, rather than the now-shared one?