newing. This makes the naming easier for things like the new
Notpredicate. It comes in both unary and binary predicate versions, and creating an instance using a static member makes the naming easier.
There are new predicates - And, Or, Not which come in both unary and binary versions, and unary True and False. There are also two new algorithms - remove and removeIf.