[tunnelbroker] Implement AMQP reconnect on channel access
Summary:
When retrieving a channel, check connection status and reconnect if needed.
It should be performed once. If multiple tasks want to retrieve a channel, they wait for reconnection result. This is ensured by the RwLock
Depends on D13601
Test Plan: Tested together with the rest of the stack on staging and commtest (example test plan in D13595)
Reviewers: kamil, varun, will
Reviewed By: kamil
Subscribers: ashoat, tomek
Differential Revision: https://phab.comm.dev/D13603