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

Just for your reference, I did it by following code, and when the user import this one by "import org.apache.spark.sql.hive.orc._", they get the support of ORC source. (not sure how to make format better:) )


package object orc {

  implicit class OrcContext(sqlContext: HiveContext) {
    
    def orcFile(filePath: String) = new SchemaRDD(sqlContext,
      OrcRelation(filePath,
        Some(sqlContext.sparkContext.hadoopConfiguration), sqlContext))

    def createOrcFile[A <: Product : TypeTag](path: String,
                                              allowExisting: Boolean = true,
                                              conf: Configuration = new Configuration()): SchemaRDD = {
      new SchemaRDD(
        sqlContext,
        OrcRelation.createEmpty(path, ScalaReflection.attributesFor[A], allowExisting, conf, sqlContext))
    }
  }

  implicit class OrcSchemaRDD(rdd: SchemaRDD) {
    def saveAsOrcFile(path: String): Unit = {
      rdd.sqlContext.executePlan(WriteToOrcFile(path, rdd.logicalPlan)).toRdd
    }
  }
}