Added gitignore file

Want to ignore files generated by CMake, and vim swap files...
Updated top-level CMakeLists to support Clang

Cool right?
Updated code to compile cleanly with Clang.

No warnings! Wow! So code!
Forgot to add this in last commit - Clang!

So Clang!