Allow tagging of transactions

Transactions now have a "tags" property which contains a set of strings
which serve only as a bit of metadata on the transaction. This will be
useful in cases where it is wanted to treat different requests/responses
differently based on information determined earlier but where it's not
wanted to add a new header or otherwise modify properties of the
transaction which will be sent to the server or client.
Add matchers for tags

This commit adds matchers for requests with a given set of tags.