[Reviewer: Andy] Fix up contact filtering issues

This fixes up the issues causing https://github.com/Metaswitch/sprout/issues/716 and https://github.com/Metaswitch/sprout/issues/685 - specifically, it treats unvalued parameters as having a value of "TRUE", ignores quotes, and allows per-token negation. I've also fleshed out the debug logging, though only in an ad-hoc way so I can track down issues.

I haven't added SAS logs, or done any checking to ensure that we only filter on valid tags (ones beginning "+sip." or in the set defined by the RFC).

It would be particularly good to get a review of my UT changes, to make sure our understandings of the specs agree.

Tested in UT and by bulking out the live tests - pull request there to follow.
This is an O(n^2) algorithm looping over all the matchee tokens for each matcher token - so it's slow (although n will generally be small) but I think it does the right thing.