[SPARK-4618][SQL] Make foreign DDL commands options case-insensitive

Using lowercase for ```options``` key to make it case-insensitive, then we should use lower case to get value from parameters.
So flowing cmd work
```
      create temporary table normal_parquet
      USING org.apache.spark.sql.parquet
      OPTIONS (
        PATH '/xxx/data'
      )
``` 
1 About ```spark.sql.caseSensitive```, my idea is that we do not need make attributes and table names case insensitive, just like hive. Configurable there make things complex.  
2 "You can still pass your CaseInsensitiveMap in and it will have the desired effect. Just don't change the function signature."
You mean like this?
```
class DefaultSource extends RelationProvider {
  /** Returns a new base relation with the given parameters. */
  override def createRelation(
      sqlContext: SQLContext,
      parameters: Map[String, String]): BaseRelation = {
    val path = new CaseInsensitiveMap(parameters)
      .getOrElse("path", sys.error("'path' must be specified for parquet tables."))

    ParquetRelation2(path)(sqlContext)
  }
}
```