zsh: Support building from Git checkouts
zsh: Support building from Git checkouts

A pregenerated `./configure` script is included with `zsh` release
tarballs which makes it so that `zsh` won't build Git checkouts without
`autoreconfHook`.

There are also other files that were pregenerated and included in
releases so a few other tools are necessary to successfully build `zsh`.
We can also build the docs ourselves instead of using the `docs`
tarball.

This means that users can now easily override the `zsh` derivation:

    pkgs.zsh.overrideAttrs (old: {
      src = fetchgit {
        url = "https://git.code.sf.net/p/zsh/code.git";
        rev = "zsh-5.8";
        sha256 = "sha256-Gou2UgafLHnZnG2X8DulidOTO1idTQpnZ3DicZuhCZc=";
      };
    })

NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs