[WIP][SPARK-2054][SQL] Code Generation for Expression Evaluation

This PR drops the aggregation code generation, which will be added back in a follow-up PR.  The following remains to be done:
 - [x] Remove remaining spurious changes.
 - [ ] Make configurable with #956
 - [ ] Maven build
Is this really the way we want to format `q"""`?  To my eye, it would be much more readable as:
```scala
q"""
  val $nullTerm = ${eval1.nullTerm} || ${eval2.nullTerm}
  val $primitiveTerm: ${termForType(resultType)} =
    if($nullTerm) {
      ${defaultPrimitive(resultType)}
    } else {
      $resultCode.asInstanceOf[${termForType(resultType)}]
    }
 """.children : Seq[Tree]
```