Add DSL for Homebrew formulae and casks

In order to extend Dot to support installing and managing GUI applications,
add a DSL `formula` and `cask` to specify that a formula or cask should
be installed with Homebrew.

This may be Mac-specific, but it is hopefully implemented in such a way
that similar DSLs could be implemented for other OS vendors (should I
ever decide I want to support both).
Add installation setup for Homebrew

In the event you're installing Dot on a brand new Mac, teach Dot to be
smart enough to install a C compiler if one is not available and then
installing `brew` and the `brew casks` extension.
Homebrew-ize all the things

Add setup scripts for installing various applications via the Homebrew
DSL. This will hopefully make it a lot faster to get set up on a new
computer.
Add hushlogin file

Prevent MOTD from being displayed by adding an empty `.hushlogin` file
to the home directory.
Simplify git information in prompt

Showing the exact status in the prompt was expensive to calculate and
has a noticeable delay on slower machines. Remove it as it's nothing a
`git status` can't answer anyway, and isn't as useful.
Simplify SSH agent socket acquisition

Previously, we relied on shims to the `git` and `ssh` commands to ensure
the `SSH_AUTH_SOCK` environment variable was appropriately set.

This was brittle as there are some commands that use ssh under the hood
but which we weren't catching in this manner.

A solution was to modify the `tmux` shim to check for the existence of
the `SSH_AUTH_SOCK` variable and symlink a file to it, and set the
`SSH_AUTH_SOCK` variable of the created tmux session to be this symlink.

This works because each time we start `tmux` we re-symlink the socket
file, but since `tmux` is always pointing to the symlink it picks up the
new socket when it changed. This is a much cleaner solution that extends
to any tool using ssh, and doesn't require nasty shims that run every
time you run `git` or `ssh`.
Enable auto-completion for Homebrew in bash

While reading the Homebrew documentation I noticed that there was a
convenient way to enable completion for the `brew` command in bash.
Remove shortcut for resetting window number

Now that tmux 1.8+ supports the `renumber-windows` option, this binding
is no longer used.
Enable pbcopy/pbpaste in tmux

Since `tmux` starts its server using `daemon`, it loses connection to
the user's namespace, which makes it unable to access the user's
clipboard.

This is solvable by using a tool called `reattach-to-user-namespace`,
with is installable via Homebrew. By changing the `default-command` of
`tmux` to check for the existence of the program and starting up a shell
using it, we can reattach the shell to the user namespace.

As a fallback, if `reattach-to-user-namespace` not installed we just
open the user's shell based on `$SHELL`.
Improve tmux helper script

Adds a check so that we don't attempt to assign the SSH_AUTH_SOCK
variable in the case it's not set to anything. This prevents a situation
from occurring where someone else logging into your system (e.g. someone
you want to pair program with) who does not have your private SSH key
will clobber your `SSH_AUTH_SOCK` variable when they attach to your
client by running the `tmux` helper script.

Also changed one of the commands to use the `-A` flag to avoid a more
complicated command with an `||`.
Change install script to work without git

Previously, Dot's install script assumed `git` already existed on the
system.

This presents a problem on "blank slate" new Macs, since they don't come
with `git` out of the box.

The solution is to `curl` Homebrew as a tarball and extract it to
`/usr/local`, then install `git` via Homebrew.

We don't need a GCC compiler for this to work, so the `install_package`
helper and the associated line that invoked it to install `gcc` was
removed.

The README was updated to explain how to install on a blank machine.
Remove shell from prompt

Not sure why this was ever added, but in any case it is no longer
useful.