Instruct .gitignore to ignore VIm temp files.

Updates .gitignore to ignore VIm temporary files which
occasionally and unintentionally gets staged on a `git add -A` and
sometimes even committed to the repository.
Update Gemfile and Gemfile.lock.

This change involves the following:

* Updates and beautifies the Gemfile and Gemfile.lock files.
* Updates the Rubygems source URL to its SSL version.
* Adds a new gem for extracting the MIME type of a filename by its extension.