Add use-ssh-substituter setting.

It defaults to false and can be overridden by RemoteStore.

Untested currently, just quickly put this together
Only start download-via-ssh if it's enabled
use USER environmental variable if getting user id by getpwuid is failed in perl scripts: download-from-binary-cache.pl and nix-channel
Fix broken patch
Simplify getting use-ssh-substituter from untrusted users
Document dynamic attributes

Signed-off-by: Shea Levy <shea@shealevy.com>
Warn about missing -I paths

Fixes #121.  Note that we don't warn about missing $NIX_PATH entries
because it's intended that some may be missing (cf. the default
$NIX_PATH on NixOS, which includes paths like /etc/nixos/nixpkgs for
backward compatibility).
Add ~/.nix-profile/sbin to $PATH

Fixes #112.
Respect $NIX_CONNECT_TIMEOUT properly

We were 1) using CURLOPT_TIMEOUT instead of CURLOPT_CONNECTTIMEOUT; 2)
not passing it to the curl child process.

Issue #93.
Also provide an option for setting the curl connection timeout
nix-store -r: Respect --add-root for non-derivations

Fixes #68.
Fixes #117.
Installer: Handle Darwin

"cp -r" doesn't copy symlinks properly on Darwin, but "cp -R" does.

Fixes #215.
Add a test for nix-store --dump-db / --load-db
Test nix-store --optimise
Test nix-store -l
Test nix-store -q --roots
Test nix-store --switch-profile and more daemon actions
Test ~/.nix-defexpr
Test the -b and -s flags of nix-store -q
Test nix-env --set