[SPARK-3343] [SQL] Add serde support for CTAS

Currently, `CTAS` (Create Table As Select) doesn't support specifying the `SerDe` in HiveQL dialect. This PR will pass down the 'ASTNode` into the operator 'execution.CreateTableAsSelect', which will extract the `CreateTableDesc` object via Hive `SemanticAnalyzer`, and then create the table
Can we consolidate two `createTable`? With your change, seems the original `createTable` will be only used by `createTable` in `HiveContext`. 

Also, can you add comments to `HiveContext.createTable` to explain what table properties will be used if users call this method?