Add global .gitignore file

Instead of specifying OS and IDE specific ignores in every single Git
repository on the given system, you can simply include these in a global
.gitignore file defined by the core.excludesfile configuration variable.
This configuration allows you to only deal with project-specific ignores
within each repository.

The base global .gitignore rules were copied out from GitHub's gitignore
article (https://help.github.com/articles/ignoring-files).
Remove project-specific rules from ~/.gitignore

The global ~/.gitignore file should only contain non-project specific
ignore rules. Those should reside in project-specific .gitignore files
within Git repositories instead.
Update OS specific ignore rules in ~/.gitignore

Unfortunatly, it is rather hard to come across the full list of files
generated by an OS, therefore we have to make one from scratch. The
ignore rules for Windows and Macintosh generated files were based
primarily on GitHub templates from http://github.com/github/gitignore,
while the GNU/Linux specific files were based on personal experience.

Consider expanding list at any time.
Add IDE specific ignore rules to ~/.gitignore

The list of all mainstream IDEs is ridiculously long and heavily
dependent on current trends. Vim and Emacs have been around for a while,
and probably will be. Only added Vim and Emacs generated files for now.

Consider expanding list at any time.
Add ace, arj, bzip2 and tar ignores to .gitignore

Consider expanding list at any time with more formats.
Remove packaging formats from global .gitignore

Packaging formats might come in handy one day when your project
requires dependencies that are only available as packages, or their
licenses prohibit you from reverse engineering the source code.
Update formatting of headers in global .gitignore
Remove comment about archives from ~/.gitignore

Decided to clean up formatting of source by re-adding comment as commit
message:

All archives should be unpacked and commited as raw source, because Git
has its own built in compression methods for storing files in the
repository.
Merge feature-gitignore into development

* feature-gitignore:
  Remove comment about archives from ~/.gitignore
  Update formatting of headers in global .gitignore
  Remove packaging formats from global .gitignore
  Add ace, arj, bzip2 and tar ignores to .gitignore
  Add IDE specific ignore rules to ~/.gitignore
  Update OS specific ignore rules in ~/.gitignore
  Remove project-specific rules from ~/.gitignore
  Add global .gitignore file