use programs.zsh, programs.git, programs.neovim instead of raw symlinks
- shellAliases + initContent replace config/zsh/{zshrc,aliases}
- programs.git.settings replaces config/git/config
- programs.neovim with vimAlias
- mkOutOfStoreSymlink for nvim (lazy-lock.json stays writable)
- platform conditionals: zed alias (darwin), credential.helper (darwin)
- ghistory, pid2port, mern moved to utils as proper functions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>