routing: add new ValidationBarrier to allow for safe parallel validation of announcements
routing: add new ValidationBarrier to allow for safe parallel validation of announcements

In this commit, we add a new abstraction, the ValidationBarrier. This
struct will be used to allow parallel validation of announcements
within notes AuthenticatedGossiper as well as the ChannelRouter.
Naively validating the announcement in parallel would run into issues
as it would be possible for validate an update announcement, before
validating the channel announcement itself. We solve this by creating a
waiting dependance using the ValidationBarrier to ensure that the
defendant jobs wait until their parents have been full validated.

LightningNetwork/lnd,LightningNetwork/lnd,aakselrod/lnd,aakselrod/lnd