Simplify TrackIPResolutionChecker and decrease generated code size
Instead of having a templated baseclass, with two implementations, which both use the 'fillTuple' member function of the (templated!) baseclass, make 'fillTuple' a single standalone function (which removes the need to instantiate two copies of the same function, just because the two instances live in a different class, but are otherwise identical!), and just have two independent Consumer implementations which both call the same fillTuple
function (which eliminates a verbose std::conditional_t
construction in the base class).