Exchange/run.fix

@pchiusano I just would like to get this in as well for 0.4.0. It fixes exchange behaviour. I was hoping to find a way instead of `mergeHaltL`/`mergeHaltR` to define `wye.haltL(wye_that_does_not_halt_on_left)` but that doesn't seem to be easy because how AwaitL/AwaitR is typed, I cannot really pass termination cause for the otherSide when in AwaitL/R. 

To do that I think we will have to change awaitL/awaitR constructors. That would require change in quite lot of code, so i said no go for this time. 

However, I think we need to address that. LMK if you have better ideas how to solve this....

P.