[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....
It will be nicer if you can provide a micro-benchmark comparison. :), and also the regex version.