[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
On one hand, I think we should try to not interact with Hive's query compiler if possible. On the other hand, since we ask Hive to process create table statements, it will be good to also ask Hive to process the create table part in CTAS queries. I guess a cleaner approach (requiring more work) will be splitting a CTAS query to create table part and query part. We ask Hive to process the create table part (Hive will see this part as a create table statement). We take care the query part. In this case, we will not need to duplicate code of `DDLTask.createTable()`. 

For now, I think that using `SemanticAnalyzer` is fine.