Merge pull request #3245 from cleishm/type_clearup

[2.0] Make type rules in Add clearer
Consider all possible result types from `CASE`

Rather than finding the leastUpperBound between all the different
expression types, consider them all as equal possibiliies.