Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

lib: Use lib.fixed-points.extends to avoid repetition

Another attempt after my sloppy https://github.com/NixOS/nixpkgs/commit/48ccdf322d9e7a68d0caf5833511ee3e53ec7d3a.

@Infinisil, thanks again, reverted in https://github.com/NixOS/nixpkgs/commit/4794aa5de233b5bf2d1c3245946379699d023467 and explained my mistakes in https://github.com/NixOS/nixpkgs/commit/48ccdf322d9e7a68d0caf5833511ee3e53ec7d3a#commitcomment-29678643. I start with their work and provide this proof of this commit's correctness:
```nix
(lib.fixedPoints.extends (lib.flip g) f) # now
((f: rattrs: self: let super = rattrs self; in super // f self super) (lib.flip g) f) # inline extends
(self: let super = f self; in super // (lib.flip g) self super) # beta reduce
(self: let super = f self; in super // g super self) # beta reduce
(self_: let super = f self_; in super // g super self_) # alpha rename
(self_: let super = f self_; in super // g super self_) # original, same
```

Eventually we might harmonize `overrideScope`'s `g` parameter with the general pattern, but I leave that breaking change as a separate step. Best not to refactor and break at once, and at least the abstractions make the oddity clearer.

authored by John Ericson and committed by GitHub 3cf43547 f8f6ab3e

+2 -1
+2 -1
lib/customisation.nix
··· 195 let self = f self // { 196 newScope = scope: newScope (self // scope); 197 callPackage = self.newScope {}; 198 overrideScope = g: 199 makeScope newScope 200 - (self_: let super = f self_; in super // g super self_); 201 packages = f; 202 }; 203 in self;
··· 195 let self = f self // { 196 newScope = scope: newScope (self // scope); 197 callPackage = self.newScope {}; 198 + # TODO(@Ericson2314): Haromonize argument order of `g` with everything else 199 overrideScope = g: 200 makeScope newScope 201 + (lib.fixedPoints.extends (lib.flip g) f); 202 packages = f; 203 }; 204 in self;