support for asking for a minimal remote host version

Instead of asking whether the node supports a particular feature
(right now verifying, more to come), simply ask for a minimal version
that has that feature.
if writing to the local .o file fails, that's also a failure
move receiving a file to a dedicated function
move file sending to a dedicated function
do not remove -fno-diagnostics-show-caret from compiler options
make sure stderr workaround doesn't affect test results by making build local
this safety check should be non-conditional
require chroot for jobs run by the daemon

We require chroot for remote jobs already anyway, which means daemon
not capable of chroot would be only for local jobs, and those should
be handled by icecc, not the daemon, so this seems to be pointless,
and possibly a security risk that would allow easily getting
out of the chroot.
try harder to generate the same debuginfo as locally

Now there seems to be only a difference caused by -grecord-gcc-switches,
because the remote end adds some extra flags like -fpreprocessed.

Technically this commit should require a protocol version bump, but let's
consider it part of version 34 changes.