Reviewer Rob - Contact filtering

This is the code for the contact filtering function.

I've UT'd everything but `filter_bindings_to_targets`, `binding_to_target` and `prune_targets` but the golden paths through them are already UTd by the existing UTs.  I'll add error paths while you review the rest.
As noted above, I think this check would be better enforced at the caller - this could then just return a std::vector<pjsip_accept_contact_hdr*>.