Add a more comprehensive gitignore file

This adds a complete ignore list for all the crazy OSX hidden files that it likes to drop into projects while you work on them. In addition I added configuration for the more common IDE files