implemented ``cast`` scalar function

"returns type" here could be a bit misleading as it doesn't return the dataType of the column but the converted value