Clean up gitignore file

This PR provides more structure and completeness to the `.gitignore` file. The extra (or generalized) ignored file/folder types are there for completeness and are provided by [Github's gitignore project](https://github.com/github/gitignore).