[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'
      )
``` 
Lets make both the class and the object `protected`.  Also we don't generally use the `_underscore` convention in Spark SQL.