Account for new Spark HadoopRDD API.
Also, for non-partitioned tables stored in Hadoop, moves 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.