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`.