Implement the IN operator for predicates

@alazier 
I think there is a problem with ```value_for_expression```. It will only works for constant value expressions but we never check for this. This is an issue from the last pr but we still need to address it. The name is still not quite correct - perhaps call it value_for_constance_expression_or_value?