[Spark-4041][SQL]attributes names in table scan should converted to lowercase when compare with relation attributes


In ```MetastoreRelation``` the attributes name is lowercase because of hive using lowercase for fields name, so we should convert attributes name in table scan lowercase in ```indexWhere(_.name == a.name)```.  
```neededColumnIDs``` may be not correct if not convert to lowercase.
Yes, column names are case insensitive in hive, we should use lowercase for names in hive module(only change here is not enough, also need convert to lowercase there https://github.com/apache/spark/blob/master/sql/hive/src/main/scala/org/apache/spark/sql/hive/TableReader.scala#L273).  
I think using an AttributeMap can not fix this problem, how about add a lowerName for ```Attribute``` and in hive we use this method instead?