It's probably not hard to create external table in CTAS. It was left out just because it's probably not very useful to create an external table holding the query results (seems the motivation for external table is that the data are already there and we just want queriability on them). If there are really needs to create external tables, we can make it a bootcamp task. The only think need to change is probably the parser, the file location, and the FileSink's destination URI.
The CTAS currently support row format serde (there is a test case in ctas.q and an example in the wiki documentation).