vimrc: store backup/swap files in ~/.vim

Instead of dropping .swp etc. files all over the filesystem, put them
in the `~/.vim/backup/` directory.

Here we have three directories, one for each of backups, swap, and
undo.
.gitignore: change `projects/` to `/projects/`

Only ignore the projects/ dir in the repository root. Who knows? we
might have a projects/ directory somewhere else in here that we want
to hold on to.
Add backup directories

* Add backup directories using .gitkeep files
* .gitignore:
  - ignore files in the three backup directories
  - ensure that .gitkeep files are not ignored