Revert adding /usr/local/bin to path in zshenv

* Adding /usr/local/bin to path in `~/.zshenv` causes it to be in my path twice one right after the other. /usr/local/bin is already added to the path in the correct order on OSX Yosemite by the /etc/paths file. 

* Remove /usr/local/bin from path export in zshenv
Fix typo in zshenv path
Remove mention of Brewfile

It is no longer in our dotfiles.
Add more Git hooks, delegate to .local convention

The `pre-commit` and `prepare-commit-msg` git hooks can be used
for some interesting things such as linting files.

For example, I need to format, vet, and lint Go files:

https://github.com/croaky/dotfiles/blob/master/git_template.local/hooks/pre-commit
https://github.com/croaky/dotfiles/blob/master/git_template.local/hooks/prepare-commit-msg

We've rejected Go-related pull requests to thoughtbot/dotfiles
due to not doing enough "official" Go work at the company.
This change helps me start with `.local` for now,
and then promote to "upstream" (thoughtbot/dotfiles) at some point
in the future if we do more "official" Go work.

I'm a believer in having linting done at VCS "commit time", either
locally in a pre-commit so I have a chance to fix things and not both my
teammates with linting issues, or at post-commit time via Hound comments
(also automated, but opportunity to ignore).

I've tried adding linting libraries to my editor, and found them too
slow, at least for Ruby. I've limited "editor-time" checking to just
syntax checking via Syntastic.

The downsides I see to adding linting to the test suite are:

* Style violations are not functional failures and logically shouldn't
  fail a build.
* Adding code coverage, linting, etc. to a test suite slows down the
  build.
* I only need to lint my diff (the commit), not the whole codebase, when I
  make changes.
* Style violations should not prevent a user-facing, production deploy.
* Adding linting to the test suite can slow that process down
  unnecessarily, particularly in continuous integration setups.

I see the appeal of linting in the test suite, particularly for
greenfield apps where we have total control, but I don't think it's a
practice that we can universally apply to our client projects who have
different deploy setups and existing codebases. So, I prefer the git
hooks + Hound approach as a pragmatic middle ground.
Fix pre-commit, prepare-commit-msg hooks

For users who had not overridden the `pre-commit` or
`prepare-commit-msg` Git hooks,
they would see `git commit` hang,
with nothing happening.

The command would exit without going to their editor.

The bug was introduced in d7f194f94ee1ab535da18e657f0c51479c0233b4
and the fix is to return a 0 exit code when the override is not present.
Update tat script to also work from within tmux

The existing script would fail if run from within tmux as the default
behavior would cause a nested tmux session which is bad. This update
detects if the current context is within tmux and properly handles this
by creating a detached session and switching to it as needed.

The idea with this is for tat to behave correctly regardless of context,
which I believe this update achieves. Existing users and workflows all
work identically, but now this adds support for a workflow that remains
within tmux at all times.

I prefer to remain within tmux all the time, rather than falling back to
the shell, navigating to another directory, and then creating the
session from there. With this update, I split a pane in the current tmux
window, navigate to the directory for the new session, and use `tat` to
open (or attach) to the new-session without ever leaving tmux.

I actually [have a binding that I use for this][], `C-b` (I am
"breaking" out a new session), that is mapped to `bind C-b send-keys
'tat && exit' 'C-m'`, which also cleans up the pane.

The reason for wanting this workflow is I am pretty strict about keeping
a tmux session focused to a single project (~ maps to a git repo). I
regularly want to reference another app and will use this workflow to
quickly open that project in a new session.

A "detached" session is one which has no clients attached. [From the man
page entry][] for `new-session`: `The new session is attached to the
current terminal unless -d is given.` This essentially creates it in the
background, preventing nesting. Then the script can attach the current
client using the `switch-client` command.

[have a binding that I use for this]: https://github.com/christoomey/dotfiles/blob/01cc928672ea857aafbe904968010baabfe6aebb/tmux/tmux.conf#L89
[From the man page entry]: http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux&sec=1
Replace kien/ctrlp.vim with ctrlpvim/ctrlp.vim

* kien has not commited to ctrlp.vim in over a year.
* Switch to ctrlpvim/ctrlp.vim since it is actively maintained.
Update vim settings

* Update colorscheme to solarized
* Set right margin to 80
* Turn off line wrap
* Add realitve line numbering for easy navigation
Updgrade Plugins

* Upgrade Vundle to new interface
* Add vim-ruby/vim-ruby
Update README.md
Update README.md
Update vimrc
Update README.md
Update README.md
move set relativenumber before set number
remove vim-rspec in favor of vim-dispatch
Update vim configs

* Remove settings for vim-rspec
* Map jj to escape. cause reaching for esc is not productive
Remove ctags-vim plugin.

* It causes issues when using terminal vim because it sets updatetime to
  500. Anything below 1000 causes these issues.
* This updatetime setting specifically causes issues with the
  gitgutter-vim plugin.
* https://groups.google.com/forum/#!topic/vim_dev/HIOsqI19UkY
Remove ctags-vim plugin.

* It causes issues when using terminal vim because it sets updatetime to
  500. Anything below 1000 causes these issues.
* This updatetime setting specifically causes issues with the
  gitgutter-vim plugin.
* https://groups.google.com/forum/#!topic/vim_dev/HIOsqI19UkY

tat: create tmux session if nonexistent

Add Shift+Tab map for tab complete in insert mode

Feature parity with `<c-p>` `<c-n>` tab completion duo.

Set Vim's colorcolumn to 80 characters

* We have an 80 character formatting limit
* This makes it obvious where that limit is

Update vim settings

* Update colorscheme to solarized
* Set right margin to 80
* Turn off line wrap
* Add realitve line numbering for easy navigation

Updgrade Plugins

* Upgrade Vundle to new interface
* Add vim-ruby/vim-ruby

move set relativenumber before set number

Remove ctags-vim plugin.

* It causes issues when using terminal vim because it sets updatetime to
  500. Anything below 1000 causes these issues.
* This updatetime setting specifically causes issues with the
  gitgutter-vim plugin.
* https://groups.google.com/forum/#!topic/vim_dev/HIOsqI19UkY

Remove line setting color column

* This was added via Thoughtbot's dotfiles in last merge
Set Vim's colorcolumn to 80 characters

* We have an 80 character formatting limit
* This makes it obvious where that limit is