Don't cache CtrlP results when using ag

It gets very annoying to manually force CtrlP to re-index every time I
add a new file. Since ag is so fast, we can turn off caching when it
powers CtrlP without any noticeable impact on search speed.
Allow backspacing over everything in insert mode

The previous setting frequently slowed my ability to edit.
Set 'autowrite'

* Automatically :write before commands such as `:next` or `:!`
* Saves keystrokes by eliminating writes before running tests, etc
* See `:help 'autowrite'` for more information
Add envup script for loading environment variables
Globally ignore `.env` file

It is a common practice to store environment variables in a .env file in
development. This file is read by tools such as foreman and dotenv. This
file can contain sensitive information such as secret keys and should
always be excluded from version control
Add a commit message template

Using the `commit.template` setting, read in a commit message template
for each commit. This template is commented out so the commit message
author doesn't need to delete it.

The template serves as a reminder on how to write a better commit
message. The bullets are taken from Caleb's blog post[1]. There is no
_problem_ per se -- we are writing good messages these days -- but it's
handy to be reminded of things to think about. For example, people often
forget to note whether there are any side effects.

This message does not show on `git commit --amend`, only normal `git
commit`.

[1] http://bit.ly/13HWyiy
The user is able to type [ or ]

There are many workarounds[1] to the

    zsh: no matches found: ...

issue, but let's just stop it at its core: turn off that `nomatch`
functionality.

Apologies to all who enjoy seeing the pun around:

    % got a light?
    zsh: no matches found: light?

But all good shell puns[2] must come to an end.

[1] http://robots.thoughtbot.com/post/18129303042/how-to-use-arguments-in-a-rake-task
[2] http://www-users.cs.york.ac.uk/susan/joke/unix.htm
Spell-check Markdown by type, not file extension

Previously, only `*.md` files would get spell-checking. This change adds
`*.markdown` and decouples Markdown spell-checking by file extension.

http://robots.thoughtbot.com/vim-spell-checking/
Disable Rubygem documentation to make Bundler fast
Update Giant Robots blog post URLs in README
Only try to install vundle if it's not installed

Prevents error on re-running ./install.sh:

    fatal: destination path '~/.vim/bundle/vundle' already exists and is
    not an empty directory.

https://github.com/thoughtbot/dotfiles/issues/195
skip linking LICENSE file during install
Use rcm instead of ./install.sh

The rcm suite is designed to replace the `./install.sh` script found in
this and many other dotfiles repos across GitHub. By using rcm users can
combine multiple dotfiles repos, tag dotfiles, have host-specific
dotfiles, and other powerful features.

This commit removes `install.sh`, updates the README, adds a post-up
hook that vundles the vim bundles, and adds a `rcrc` configuration that
ignores `README.md` and `LICENSE` and sets the dotfiles directory to
just `dotfiles`.
Always update from vundle

Previously, the after-up hook would only do a `:BundleInstall` when
installing vundle for the first time. This is inconsistent with the
pre-rcm process, and also less convenient.
Cleanup zshrc

* remove duplicates with zlogin
* order by functions first, then bindings, then exports
* lowercase `setopt` arguments for consistency with `setopt` output
Use Brewfile
Correctly link to rcm in README
Use thoughtbot/rcm in Brewfile
Add rbenv shims and trusted binstubs to PATH

Our expected way of managing Rubies is with rbenv:

https://github.com/thoughtbot/laptop/blob/master/common-components/ruby-environment

This commit loads rbenv in `zshrc` as recommended by the rbenv docs:

https://github.com/sstephenson/rbenv#basic-github-checkout

Assuming the binstubs for a project are in the local bin/ directory, we
can even go a step further to add the directory to shell $PATH so that
rspec can be invoked without the bin/ prefix:

    export PATH="./bin:$PATH"

Doing so on a system that other people have write access to (such as a
shared host) is a security risk:

https://github.com/sstephenson/rbenv/issues/309

The `.git/safe` convention addresses the security problem:

https://twitter.com/tpope/status/165631968996900865

This zsh fix may be necessary for OS users in order to fix a bug:

https://github.com/thoughtbot/laptop/blob/master/mac-components/zsh-fix
Complete parity commands like heroku

Adds tab completiong to `production` and `staging` which acts as tab
completion to heroku.