stream: just return the same result as sendmsg().
stream: handle read timeouts by using poll() before recvmsg()/readv().

Also, use recvmsg() by default and fallback to readv() if ENOTSOCK. This
should never really happen since we only use files in the unit tests.
Hence, making it a fallback path.