add comprehensive .gitignore (closes #9)