Exponentially reduce computation time needed for replace-dependency by using memoization.

This patch makes two changes.

(1) It memoizes the computation of dependsOnOld.
(2) It replaces rewrittenDerivations with a similar memoized table rewriteMemo.

This prevents the entire tree of run-time dependencies from being traversed and instead only traverses the graph of run-time dependencies.
In the case of deep dependency changes (such as changing one's bash version for an entire NixOS system) this can lead to an exponential speedup in processing time
because shared dependencies are no longer traversed multiple times.

This patch isn't quite derivation-per-derivation equivalent to the original computation.
There are two immaterial differences.

(1) The previous version would always call upon sed to replace oldDependency with newDependency even when the store object being updated doesn't directly depend on
oldDependency.
The new version only replaceds oldDependency with newDependency when the store object being updated actually directly depends on oldDependency (which means there is
actually a hash to replace).
(2) The previous version would list the old store object as a source input of the new store object, *except* for the root derivation being updated.  Because the
root derivation being updated has its actual derivation avaiable the previous verions would make the updated root derivation depend on the old derivation as a
derivation input instead of a source input.
The new version always lists the old store object as a source input, including the root derivation.
Added me as a maintainer.
Merge pull request #4303 from hrdinka/nsd

NSD update to version 4.1.0
fontconfig: stop using xml:space; vital for nixos+2.11

This is a proper fix for problems described in ec985c8ffa6d29 .
The code is from @lethalman.
Merge pull request #4289 from muflax/zsh

zsh: version bump to 5.0.6 and enable pcre
pavucontrol: Adopt and clean dependencies
paprefs: Add package
Add nix-exec package
nixpkgs manual: packaging coq libraries
Tilda: update to 1.1.13

Closes #4307
mpv: update to 0.5.4

Also, a small update on internal let-waf expression

Closes #4306
Xiphos: update to 3.2.2

Closes #4312
Mednafen: update to 0.9.36.4

Closes #4304
Merge pull request #4309 from abbradar/paprefs

added "paprefs" package, adopted pavucontrol
nix-exec: set platforms
Merge pull request #4313 from NixOS/fastReplaceDeps

Exponentially reduce computation time needed for replace-dependency by u...
Fixed idris wrapper to make idris work with different backends.

Closes #4314
Updating toxic/libtoxcore/libsodium
Updating utox (fixing PREFIX too)
Adding qtox. Making libtoxcore propagate libvpx.