Refactor Is predicate and extract abstract base class 'ValuePredicate'
so that we can reuse it.
Implement new Predicates, 'Contains' and 'Matches'.