Minimize Configuration broadcast/serialization overhead for HadoopRDDs/Hive-partition scans.

Previously, there was one broadcasted Configuration for each HadoopRDD created for a Hive partition that's stored on disk - e.g., for a table scan over 1000 partitions, there are 1000 Configuration broadcasts.
This change uses the HadoopFileRDD, so that there is one broadcasted Configuration shared across multiple HadoopRDDs created for the table scan.

Also, moved row deserialization from processPartition() to preprocessRDD(). This makes it more consistent with partitioned table reads/processing, and allows us to annotate HiveConf as transient, which should reduce Spark task sizes.