Updated .gitignore feature to allow custom ignores

Instead of completely recreating .gitignore files when needed, tup now uses the line `##### TUP GITIGNORE #####` to designate user created ignores and tup generated ones. Everything above the line is copied to the new gitignore file, and everything below it is regnerated. This allows users to add their own files to ignore directly into a project's .gitignore file.

I added this feature after using tup with a repository where I have a `config.ini.template` file and wanted to create a local `config.ini` copy. This commit allows me to ignore this specific file.