Support all VCS that have a nix-prefetch script

We now use the various nix-prefetch-* scripts to fetch the source. This
makes it easy to add new sources, and also makes the code simpler.

A side effect is that we now generate a `fetchurl` source for hackage
packages, using the `hackage` mirror.

This depends on NixOS/nixpkgs#3038 and NixOS/nixpkgs#3039