Add a stricter `with_all_matching_keys` method

Paired with @rboulton.

We now check that we have all the keys rather than an overlapping subset
of them, and use this in `where_tags_equal`.

Also add passing tests of
SubscriberList.with_at_least_one_tag_of_each_type to narrow down its
behaviour a bit more, and tests of SubscriberList.where_tags_equal,
which fail in some cases.