Implement UDFs (plus bonus REGEXP functionality).

It's been a long time coming but I finally sat down and put the finishing touches to creating user defined scalar functions.

I don't think aggregate functions will be too far behind.