Merge .gitignore files

In my opinion in is simplier when you can see all the ignored
files in single place, the root.
So one can quickly recognize which files are actually ignored
without being surpised by .gitignore files in other directories.

Also this commit introduces paths relevant to root directory, so
it cannot accidently ignore other files with the same name.
fix negative exclusions in .gitignore

It is left after scripted procession.