Make pipe buffer size configurable
Make async pipe read report zero bytes for EWOULDBLOCK

To match the semantic for sync pipe read.
Handle EINTR error during async file reading