make winner implicitly check a channel's done too

The concept of making a channel have a boolean operator to return the
done promise was bad for two reasons: 1) the logic of it was backwards
from promise booleans, and 2) making a boolean op return a non-boolean
is just a bad idea, and the person who proposed it should be ashamed.