[SPARK-2594][SQL] Add CACHE TABLE <name> AS SELECT ...

This feature allows user to add cache table from the select query.
Example : ADD CACHE TABLE <tableName> AS SELECT * FROM TEST_TABLE.
Spark takes this type of SQL as command and it does eager caching.
It can be executed from SQLContext and HiveContext.

Author : ravipesala <ravindra.pesala@huawei.com>
You do not need to manually pass a SQLContext anymore (some code in this file may be out of date).  It should be accessible in all `SparkPlan`s as `sqlContext`.