adding comprehensive .gitignore file