Tidy up tests a bit.

`t.plan` obviates the need for `t.end`.
Cancellation should behave more like closing.

Fixes #90. In particular, the promise returned by `wait()` should be resolved with `undefined`, not rejected with the cancellation reason.

At this point the `reason` parameter is no longer used, which makes sense: it represents a kind of error, but we have moved away from thinking of cancel (formerly abort) as an error condition.