[SPARK-4151][SQL] Add string operation function trim, ltrim, rtrim, length to support SparkSql (HiveQL)

@marmbrus @chenghao-intel
Add three string operation functions to support spark sql and hiveql.
eg:
sql("select trim('   a  b   ')  from src ").collect()    --> 'a  b'
sql("select ltrim('   a  b   ')  from src ").collect()    --> 'a  b   ' 
sql("select rtrim('   a  b   ')  from src ").collect()   --> '   a  b'
sql("select length('ab')  from src ").collect()   --> 2

And Rename the trait of stringOperations.scala.
I prefer to rename trait CaseConversionExpression   to  StringTransformationExpression, it is more make sence than before so that this trait can support more string transformation but not only  caseconversion. 

And also add a trait StringCalculationExpression that do string computation like  length, indexof  etc....
I am not so sure if the regex works here, but another option is likely to be use the `org.apache.commons.lang.StringUtils`, see https://github.com/apache/hive/blob/b8250ac2f30539f6b23ce80a20a9e338d3d31458/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLTrim.java