Update .gitignore

*.swp means ignore the temp file used by vim
*.[ao] means ignore the object file or executables generated as a result of compiling
*~ means ignore the tmp file use by emacs (another widely used editor)