[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 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.

Recreated the pull request after rebasing with master.And fixed all the comments raised in previous pull requests.
https://github.com/apache/spark/pull/2381
https://github.com/apache/spark/pull/2390

Author : ravipesala ravindra.pesala@huawei.com

@liancheng Added space after ```, ``` Thank you

@chenghao-intel  I can see a difference between ```CREATE TABLE``` and ```CACHE TABLE```. Because the later is supported by hive parser but ```CACHE TABLE``` is not supported by hive parser.