[SPARK-3813][SQL] Support "case when" conditional functions in Spark SQL.

"case when" conditional function is already supported in Spark SQL but there is no support in SqlParser. So added parser support to it.

Author : ravipesala ravindra.pesala@huawei.com
Haven't tested yet, but I think this parser can be simplified to:

```scala
    CASE ~> expression.? ~ (WHEN ~> expression ~ (THEN ~> expression)).* ~
      (ELSE ~> expression).? <~ END ^^ {
      case casePart ~ alternatives ~ elsePart =>
        val alternativesPart= alternatives.flatMap { case whenExpr ~ thenExpr =>
          casePart.fold(whenExpr)(EqualTo(_, whenExpr)) :: thenExpr :: Nil
        }
        CaseWhen(alternativesPart ++ elsePart.toList)
    }
```