Add Barrier.Forward(*Barrier) and tests

On several occasions I need the ability to link barriers together such
that if one falls, the other should fall (but not the other way around).

This is useful for example if there is a barrier that represents a signal
to quit, and where there are tasks which are each independently
quittable or cancellable. In that case, we may need to forward
"application quit" to the task quits.
Merge pull request #1 from pwaller/add-forwards

Add Barrier.Forward(*Barrier) and tests