Revert "build-remote.pl: Enforce timeouts locally"

This reverts commit 69b8f9980f39c14a59365a188b300a34d625a2cd.

The timeout should be enforced remotely.  Otherwise, if the garbage
collector is running either locally or remotely, if will block the
build or closure copying for some time.  If the garbage collector
takes too long, the build may time out, which is not what we want.
Also, on heavily loaded systems, copying large paths to and from the
remote machine can take a long time, also potentially resulting in a
timeout.
nix-build --run-env: Add a ‘--pure’ flag

This causes the environment to be (almost) cleared, thus giving a
shell that more closely resembled the actual Nix derivation.
Rename ‘nix-build --run-env’ to ‘nix-shell’
nix-shell: Set some environment variables also set by build.cc

Setting $NIX_STORE causes the purity checks in gcc/ld-wrapper to kick
in, so that's why we unset $NIX_ENFORCE_PURITY.
nix-shell: Set $IN_NIX_SHELL

This allows scripts to distinguish between a real build and a Nix
shell.
Add hacking notes plus a script for running nix-shell
buildenv: remove special treatment of python files

buildPythonPackage does not leave easy_install.pth and site.py
anymore. A python package that leaves these files is broken. An
exception to this is setuptoolsSite which packages setuptools'
site.py. To include it into a buildenv, this patch is even needed, not
just cosmetic.
killUser: Don't let the child kill itself on Apple

The kill(2) in Apple's libc follows POSIX semantics, which means that
kill(-1, SIGKILL) will kill the calling process too. Since nix has no
way to distinguish between the process successfully killing everything
and the process being killed by a rogue builder in that case, it can't
safely conclude that killUser was successful.

Luckily, the actual kill syscall takes a parameter that determines
whether POSIX semantics are followed, so we can call that syscall
directly and avoid the issue on Apple.

Signed-off-by: Shea Levy <shea@shealevy.com>