[SPARK-4152] [SQL] Avoid data change in CTAS while table already existed

CREATE TABLE t1 (a String);
CREATE TABLE t1 AS SELECT key FROM src; – throw exception
CREATE TABLE if not exists t1 AS SELECT key FROM src; – expect do nothing, actually will overwrite the t1.

This PR actually contains the following change:
1) Fix bug describe above;
2) Whitelist the test case.
3) Disable the file split for small single table file(make input splits based on HDFS block)
4) Decimal type in Hive 0.13 is not compatible with in Hive 0.12, we should map them both to `DecimalType`
Sorry for the confusing of the TODO.
This is for the `DescribeHiveTableCommand`. The the golden files output like "decimal(xx,xx)", but Hive 0.12 version test answer is "decimal". The same for `numPartitions`. I know we have PR to fix the precision issue of decimal, this is a workaround for compatible with Hive-0.12 testing.