[SPARK-2523] [SQL] [WIP] Hadoop table scan bug fixing

In HiveTableScan.scala, ObjectInspector was created for all of the partition based records, which probably causes ClassCastException if the object inspector is not identical among table & partitions.

This is the follow up with:
https://github.com/apache/spark/pull/1408
https://github.com/apache/spark/pull/1390
I would keep it. It is important to set needed columns in conf. So, RCFile and ORC can know what columns should be skipped. Also, seems `hiveConf.set(serdeConstants.LIST_COLUMN_TYPES, columnTypeNames)` and `hiveConf.set(serdeConstants.LIST_COLUMNS, columnInternalNames)` will be used to push down filters.