[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
I was planning to do this by re-implementing within `HiveQL`, but the logic of `CreateTableDesc` is quite complicated and error-prone, probably reuse the Hive `SemanticAnalzyer` is a simple and quick work around. I will add a TODO for further improvement. What do you think?