[SPARK-3720][SQL]initial support ORC  in spark sql

Provide a initial support for orc file formate in spark sql,  support for both reading and writing ORC files . user can use ORC file just like parquet as follow:
```
... ...
  rdd.registerTempTable("records")
  rdd.saveAsOrcFile("pair.orc")
  val orcFile = sqlContext.orcFile("pair.orc")
  orcFile.registerTempTable("orcFile")
  sql("SELECT * FROM orcFile").collect().foreach(println)
```

Line 80 to 97 can be simplified to:

```scala
    val (columns, columnTypes) = fields.map { f =>
      f.getFieldName -> f.getFieldObjectInspector.getTypeName
    }.unzip
    columns.zipWithIndex.foreach { case (f, id) => fieldIdCache.put(f, id) }
    prop.setProperty("columns", columns.mkString(","))
    prop.setProperty("columns.types", columnTypes.mkString(":"))
    convertToAttributes(reader, keys, types)
```

(I removed `fieldNameTypeCache` since it's not used anywhere.)