[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....
@chenghao-intel yep, what I mean is to add a trait to support return type of Integer. Because function like LENGTH(n)  which compute the size of a string return Integer,  INSTR(chr1,chr2,[n,[m]]) which compute a position also return Integer. But I'm not sure whether this will cause some side effect or not.