The old way of composing overlays addes an unnecessay overlay, which
breaks the packages attribute of the flake. To reduce the impact on
users, I make a workaround[1] for that, which has been merged. Now I
figure out the real fix, which is to change (_: super) to (_: {}).
Additionally, the old way is a bit confusing.
This patch fixes both issues by using a better and clearer way to
compose overlays.
Since the workaround is no longer needed after this patch, I revert
that in the next commit.
[1]: https://github.com/nix-community/emacs-overlay/pull/256
Emacs packages in nixpkgs have binary cache since [1]. It is useful to
split the whole overlay into two seperated ones so that users can use
emacs packages in nixpkgs with emacsWithPackagesFromUsePackage or
emacsWithPackagesFromPackageRequires in this overlay.
[1]: https://github.com/NixOS/nixpkgs/pull/188110