[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>
I'd do a `count()` instead of a `collect()`.