Add support for literal ranges to BETWEEN predicates

@alazier 
would be nice to name this something more descriptive - between_value_for_expression_or_constant, or something else which doesn't require you to read the code where its used to make sense of it.