Ignore files generated during compilation.

This decreases the frustration using git by hiding all of the files that
should not be committed to the repository.

The first step was to add the common files with obvious extensions e.g.
`.o`. Next I dumped the results of git status into `.gitignore` with
`git status | tail -n +5 | awk '{print $2}' | head -n 52 >> .gitignore`.

This file will need to be modified in the future if new compilation
units are introduced.
Prints the rules of a cluster in ascending order (broken).
Adds ignored files that are not produced in Darwin.
Copies svn:ignore to the corresponding .gitignore file.