query: avoid terminating transaction broadcast upon first rejection
query: avoid terminating transaction broadcast upon first rejection

In this commit, we address a flaw within our current transaction
broadcast logic. Previously, we would terminate upon the first rejection
we come across from any our peers. This is unreliable, as it's possible
that this peer rejected a valid transaction due to not having the
required state to properly validate it, e.g., missing the transaction's
dependencies.

We address this by waiting until all of our peers either reply or time
out. We then look at all of the possible rejections from the peers that
did reply and determine which was the most common to return to the
caller. There are several gotchas with this approach which will require
further analysis, but the current implementation serves as a better
work-around until then.

lightninglabs/neutrino