[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.
Why this change?  I can't see why this is needed (and it lowers maintainability and performance)