Introducing auto-nix-shell for consistent development environments

I created auto-nix-shell to automatically enter/exit nix-shell when cding into/our of a directory that has a Nix config file (default.nix). It even checks for config changes before executing the next shell command (using fish_preexec and bash-preexec) and reloads the configuration when you git checkout <some other commit>