This commit moves a lot of the heavy lifting out of callPackage and back
into regular import, following conventions from upstream Nixpkgs. It
allows for a clearer and less magic definition of new packages,
particularly by downstream, as well, by exposing the *Build package
callers in the attribute set.
At some point the propagation logic is being changed such that
nativeBuildInputs isn't included in buildInputs, which means that
pkg-config can't see anything in nativeBuildInputs.
The old method was having the alacritty build copy-pasted into the repo
and making minor changes. This worked but isn't really feasible as it
doesn't incoroprate upstream (build) changes without noticing.
This commit finally works out how to override buildRustPackage to set
the Cargo dependency.