input_stream: only rely on events for pipes+sockets
If using kevent(2) in the event loop, kevent actually accepts
EVFILT_READ for regular files instead of triggering EPERM
as epoll_ctl(2) does. This kevent-specific behavior doesn't
work with our expected use with static files which don't see
modifications.
I noticed this on FreeBSD when trying to make lei use kevent
for everything instead of select(2) for sockets and
kevent for EVFILT_SIGNAL only.