Base ToMatchingFilter on HeaderMatchingFilter

So here is an alternative approach - HeaderMatchingFilter does what it does now, but is restructured to allow the core code to be reused.

ToMatchingFilter is a new filter that re-uses it.