[tunnelbroker] Recover AMQP before publishing messages
Summary:
Similiar to D13607 (recover when session is closing) and D13606 (consumer is broken).
Before publishing, check channel state and recover if needed. Eventually propagate error if both fail.
Depends on D13609
Test Plan: Tested on staging with the rest of the stack
Reviewers: kamil, will, varun
Reviewed By: kamil
Subscribers: ashoat, tomek
Differential Revision: https://phab.comm.dev/D13611