WIP Gitignore overhaul

An overhaul of the gitignore structure, refactoring out some gitignore files, while keeping the structure granular and as self-contained as possible.

One task is still todo: _some files are committed but match ignore rules_

Closes # 2057.