Use proper cache directory

- On Linux, use ~/.cache/vim
- On OS X, use ~/Library/Caches/vim
Change location of backup, swap and undo files

- Use a single directory for all files.
- Use full paths to identify files (the trailing //)
- Prefer the cache directory.
- If not present, use ~/.vim/tmp
- Otherwise, fallback to /var/tmp or /tmp
Fix main() snippet for C++
Keep window position when switching buffers

By default, switching buffers keeps the cursor position in the same
line, but the line itself may be repositioned in the middle of the
screen.

Add the autocommands to restore the line to its original position
because that is where I expect the line to be, not in a shifted
position.

[1]: http://vim.wikia.com/wiki/Avoid_scrolling_when_switch_buffers
[2]: http://stackoverflow.com/questions/4251533/vim-keep-window-position-when-switching-buffers
Fix "crontab -e" in OS X

Editing the crontab file in OS X results in this error messsage:

    crontab: temp file must be edited in place

Disable the writebackup option to edit the file in-place.