Extract duplicated overlay and home-manager configuration code into two
reusable factory functions:
- mkBaseOverlay: Creates the base overlay with unstable pkgs, custom
packages, and bitwarden-desktop compatibility. Accepts optional
unstableOverlays parameter for darwin-specific customizations.
- mkHomeManagerConfig: Creates home-manager configuration with shared
settings (useGlobalPkgs, useUserPackages, doom-emacs module). Accepts
sharedModules parameter for platform-specific modules like plasma-manager.
This reduces code duplication across nixosModules, nixosModulesUnstable,
and darwinModules, making the flake easier to maintain and extend.
Implements bead: nixos-configs-ek5