[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)
```

This `map` (actually `foreach` is better since you're relying on side effects here) generates something like `id1,id2,id3,`, but you are expecting a comma separated list here.

This whole function can be implemented as:

```scala
  def setColumnIds(output: Seq[Attribute], relation: OrcRelation, conf: Configuration) {
    val columnIds = output.map(a => relation.output.indexWhere(_.name == a.name)).mkString(",")
    conf.set(ColumnProjectionUtils.READ_COLUMN_IDS_CONF_STR, columnIds)
  }
```