Add some basic support for Ruby.
Use 2-space indents when working with JSON data from knife.

Chef uses 2 space indentation data when editing nodes, roles, and other
data that can be represented as JSON.
Use bolding for types, keywords, functions, and ruby control keywords.
Merge branch 'use-space-indent-on-knife-files' of https://github.com/jszakmeister/vimfiles
Merge branch 'add-ruby-setup' of https://github.com/jszakmeister/vimfiles
Introduce the VIM_CACHE_DIR concept.

This will eventually be the place that any cache-related items in Vim
can be stored, like persistent undo data.
Prefer to use $VIM_CACHE_DIR/undo for undodir.

If $VIMFILES/.undo exists, it'll use that instead.  This also removes
the undo directory, but the contents will be left on the user's machine
until they move it to $VIM_CACHE_DIR/vim/undo ($XDG_CACHE_HOME/vim/undo,
by default).  An ignore was added for the .undo directory, just to keep
things clean.
Fixup undo directory-setting logic:

- Add missing test ``!= ""`` for $XDG_CACHE_HOME.

- Point &undodir at ``$VIM_CACHE_DIR/undo`` (without a ``.``).