When a frugal Alice refuses to call `setReady`
I envision a scenario where the ETH sender (Alice) verifies that the XMR sender (Bob) sent his XMR but does not mind waiting a long time to receive it and decides not to pay for the `setReady` call. Now Bob must wait until `timeout0` before he can get his ETH. Maybe he needs his ETH quickly and is willing to pay a little to get it earlier.

The default timeout is 1 hour according to https://github.com/AthanorLabs/atomic-swap/blob/2905d1b1f9d9d3e20f922f09472a0cf0919b5e2e/common/config.go#L136

Instead of forcing Bob to wait 1 hour, maybe the benevolent yet cheap Alice could send him a signed message giving her approval of `SetReady(swapId)`, and Bob could pass this signed message into the contract along with his regular/relayed `claim` call, which after verifying it would both promote the swap to `READY` and then make the claim. Currently, authentication is done by `msg.sender`, so a signed message would be equivalent.

We would have to create a special `claim` option for this and be sure to allow some edge cases, e.g. "Alice did send the `setReady` transaction but the signed message is included anyway in the `claim` call" or "`timeout0` was reached but the signed message is included anyway".

I think even with small transaction fees, there will be some frugal Alices who choose not to pay for the extra transaction.

What do you think?