Refactoring of QueryPredicateBuilder to be implemented as ExpressionVisitor with custom expression types. Plus support for decimal and int constant folding.