3.0 between expression

Implements a new `between()` method in the `QueryExpression` object and cleans up the `Comparison` object as some of its code was rather confusing.
Yes, we already talked about it back in the days :P The reason is that null is a valid value and the combined getter and setter would fail in the case of setting null