repeatable nixos-rebuild using git commit-ids

Add options:
- system.nixpkgsRepository.uri
- system.nixpkgsRepository.refid
- system.nixpkgsRepository.binaryCache

Modify nixos-rebuild.sh to download nixpkgs
tarball from github.

Add unpack-github-tarball.nix to unpack the
tarball into nix store.

Usage: if configuration.nix contains the following
options, nixos-rebuild will use the NixOS/nixpkgs github
repository at commit 61befa...

    system = {
      nixpkgsRepository = {
        uri = "NixOS/nixpkgs";
        refid = "61befa04511551e3bdcb8150553e5c87bcd5abe3";
      };
    };