swap IDs and offer IDs shouldn't overlap (at least not in the database)
Currently, swap IDs and offer IDs are the same (a hash of the offer fields). If a swap ends in success, this is fine. However, if it ends in refunded/aborted, this is not.

When an offer is taken, it's deleted from the db and a `swap.Info` struct is created and written to the db in its place, indicating the offer has been taken and a swap has started. However if a swap refunds/aborts, the `swap.Info` stays in the db (with the exit status saved), but the offer is also re-added to the db. Then, if the offer is taken again, the previously written `swap.Info` will be overwritten with the new swap, as the IDs (and thus db keys) are the same. 

This is probably bad, as we don't want to overwrite past swaps (even if they failed).