[BUG] transfer of ILP RUNE in withdraw should be reverted if adding outbound fails
In handler_withdraw, if we fail to add the asset outbound to the queue, we restore the pool and lp and return. We restore to the original values because the external deposit will ignore the error in order to take the fees and possibly refund. Which means any changes to the store during the withdraw handler will be committed if not explicitly reverted.
https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/handler_withdraw.go#L141
But this doesn't cover the case where the withdraw triggers an ILP payout, which causes a transfer of RUNE from ReserveModule to AsgardModule.
https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/withdraw_current.go#L218
In such a case, RUNE erroneously moves between modules (with no changes to the pool or lp).
Example in the wild: https://thornode-v0.ninerealms.com/txs?tx.height=4761432&limit=1&page=88 https://midgard.thorchain.info/v2/debug/block/4761432
Thanks to @Multipartite for surfacing this issue.
Related to #1258 (closed)