Small internal refactor of Buffer<T>
Add ifthen built-in function

Translates to the conditional operator (?:) in OpenCL. If the condition
expression is a vector, the operator works element-wise (ie select()).