Fix race condition in last RPM decompression+cpio read

fpm's RPM spec was failing reliably under Ruby 1.8.7, for whatever
reason.

The cause is that File#read_nonblock has a side effect of leaving the
file descriptor with O_NONBLOCK set. This makes the next 'read' call be
nonblocking (as well as any future reads, until you disable it).

The best fix is to disable nonblocking before the last read, but I'm not sure
how to do that reliably under ruby without using fcntl, which probably
isn't very platform independent.

Since I don't think we can do the 'best fix' I do the next thing which
is to retry reads that raise EGAIN and finally finish reading after
receiving EOF.