vchan: check for `Eof in the inner loops of read, write and writev

Previously we only checked the connection state on entry, but then would
block forever waiting for data to arrive. We would be signalled on close
but not re-check the state.

We now always check the state.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>