New comprehensive .gitignore