Allow more "error" values in try_recv()

This should allow callers to know whether the channel was empty or disconnected
without having to block.

Closes #11087
auto merge of #11112 : alexcrichton/rust/issue-11087, r=brson

This should allow callers to know whether the channel was empty or disconnected
without having to block.

Closes #11087