[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....
Is there a reason to add this dependency to catalyst?  Doesn't Scala have these string functions natively?  Are these significantly faster?