rewrite FindProvidersAsync

This PR implements a better `FindProvidersAsync` call that uses the query framework and actually takes advantage of closer peers.
that it is... i think not doing that is a result of my shitty-programmer-copy-paste-itis