Support for multiple tags in where test expressions

* Refactor the tag set checking from tagged-any & tagged-all into separate predicate functions.
* Unify the branches of tagged-* around whether or not the supplied tags are a collection.
* Support for testing for multiple tags in a where test expression using the tagged-* predicate functions.