Add case expression class for simple SQL case statements

References #4202

Usage is:
```
$query->newExpr()->addCase($expression, $valueIfTrue, $valueIfFalse)
```

`$expression` must be a QueryExpression instance.
The presence of this function made me realize that this is the only expression object that is not taking a $types argument as the rest. I don't think this should be a snow flake inferring types out of the passed variables. We can either only accept `ExpressionInterface` for each of the arguments or we need to add type matching like the rest of the expressions