[SPARK-2594][SQL] Add CACHE TABLE <name> AS SELECT ... (Updated as per review comments)

Updated as per the review comments of Admin.
Previous pull request is https://github.com/apache/spark/pull/2381
@marmbrus I've seen your comments in [SPARK-2594](https://issues.apache.org/jira/browse/SPARK-2594), I'd be OK with both being lazy or eager, but I think this statement should be consistent with `CACHE TABLE <name>` and `SQLContext.cacheTable`, which are now lazy. Otherwise it would be rather confusing.