1.0.48.7: add FD-STREAM-FD-TYPE, use it to decide when to poll the fd
1.0.42.43 introduced a regression that caused reads from non-regular files
to potentially block in an uninterruptible state, as WAIT-UNTIL-FD-USABLE
started being called only when there was a timeout or events to serve.
This was a win for regular files, because filling the input buffer then
required one syscall less.
...but since uninterruptible blocking reads aren't fun for anyone, let's
make things a bit smarter:
* When creating an FD-STREAM, use fstat() to get the type of the fd, and
store a keyword describing it in the FD-STREAM.
* REFILL-INPUT-BUFFER now calls SYSREAD-MAY-BLOCK-P always if the file
anything but :REGULAR -- so pipes and sockets and whatnot get their
select() calls, and a read from a stream to one can no longer cause
SBCL to hang.