New functions

This commit adds a bunch of (imho) crucial functions to the expression engine:

- abs (returns absolute value)
- rand and randf, for generating random numbers
- max and min (return max or min value from a set of input values)
- trim (removes whitespace from start/end of string)
- floor and ceil (for rounding up/down a double)
- scale_linear (for linearly scaling an input value to an output range, great for data defined expressions where your field values may range from 1000-10000 and you need output values between say 10 and 20). Think d3's scale function.
- regexp_substr, for returning the matched part of a regular expression

I've added these functions because I think they're vital to make the expression engine flexible and powerful. All functions have help and test cases, so I'm hoping these can be merged for 2.0 despite being past the feature freeze.