Buffer reads from the substituter

This greatly reduces the number of system calls.
Process stderr from substituters while doing have/info queries
Remove obsolete EOF checks
download-from-binary-cache.pl: Show if we're waiting for a URL

Previously, if a binary cache is hanging/unreachable/slow,
download-from-binary-cache.pl would also hang without any indication
to the user.  Now, if fetching a URL takes more than 5 seconds, it
will print a message to that effect.
Replace $NIX_DEBUG_SUBST with an option ‘debug-subst’

Thus passing ‘--option debug-subst 1’ allows daemon users to turn on
debug info and see what the substituter is doing.
download-from-binary-cache.pl: Respect $NIX_CONNECT_TIMEOUT