Lnxstdenv refactor

Refactor the pkgs/stdenv/linux/default.nix staging logic to be more easy to read and shorter.

Then I reformulated my former zlib pull request (#3584) on top of this to demonstrate that the new version is easier to change and it's easier to review changes on the new version.

This is essential, because to properly fix #3548, I'll introduce two more stages which would've made the new file even more complex and therefore the code review a hell.

Please note that the first commit doesn't changes the derivation/output hash at all, therefore we know that the refactoring is sound, then I add the zlib change in a separate commit, so the refactoring stays clean.