Refactoring top-level .gitignore

Grouping related ignore rules together and adding some comments to that
things make a bit more sense.