Bash: ~/.ssh/config instead of `mt.com` alias

We previously had created a complicated set of scripts around
connecting to my server, including an alias for SSHing to it (`mt.com`)
and a wrapper around `scp` which would insert the proper URI, port, and
username if it saw 'mt.com' as the URI being used.

However, it turns out we can eliminate all of this with ~/.ssh/config.
There, you can setup aliases, set their hostname, port, username and
even turn on ssh-agent forwarding (which we do for our server, so that
the server can use our local Mac OS X credentials when we're SSHed into
it.)

This is accomplishes the same thing our complicated scripting system
does, more elegantly and robustly, and works for both `ssh` and `scp`
(and `git` and anything else using SSH connections, most likely.)

Obviously ~/.ssh/config hasn't been checked into the repo because it
contains sensitive information (URIs, ports, usernames, etc.) but it
shouldn't be hard to recreate if need be. An example is:

Host mt.com
        HostName <URI>
        Port <Port>
        User <username>
        # Turn on ssh-agent forwarding
        ForwardAgent yes
Fix .hgignore_global
Bash: set LC_CTYPE to en_US.UTF-8
Bash: `brew outdated` now runs `update` first

In my homebrew wrapper script, I modified the `brew outdated` command
to first run `brew update`, so that we have the freshest updates before
showing outdated formulae.

If the output is going to a terminal then we show the output of `brew
update`, followed by a divider, followed by the output of `brew
outdated`. If the output is instead being piped somewhere or similar,
then we just show the output of `brew outdated`.

The '-f'/'--fast' option to `brew outdated` (as in `brew outdated
--fast`) will cause `outdated` to skip running `update` first.
More robust arguments, help msg to `serve` command

The `serve` command runs a HTTP server, serving the current directory.
This commit adds a help message, accessible by passing '-h' or '--help'
as one of the arguments.

The arguments to `serve` are now more robust as well. Before, we had
two separate arguments for IP and port. Now, they are one argument in
standard form (for example, '0.0.0.0:8080').
Bash: add `gsudo` command, remove `sudo_gui`

Both commands do the same thing: run a terminal command with
administrator privileges, using a GUI to prompt the user for their
password (as opposed to regular `sudo`, which prompts the user for
their password in the terminal.)

This commit moves that functionality from a function in helpers.sh, to
its own script `gsudo`. This allows it to be used directly by the user,
or from scripts that don't source helpers.sh.

This commit also changes the code to escape quotes in the provided
terminal command, which would otherwise cause problems with AppleScript.
Vim: add my own fork of OpenCL package

The package provides OpenCL file support, syntax highlighting, and
syntax checking to Vim. My fork adds support for syntax checking using
Apple's OpenCL compiler, openclc.
content)
content)
Vim: update user-installed plugins
content)
Print warning messages in Vim plugin update script

The update.sh script we use to update the Vim plugins in the ~/.janus
directory will now print a message to the user when it is done.
This message implores the user to commit their changes to git as soon
as
possible, and warns them about undefined behavior if they run the
update.sh script again without first committing their changes.

This should hopefully stop people (me) from causing problems with the
submodule system used to import Vim plugins.
Vim: update OpenCL plugin to latest version
Vim: trim trailing whitespace in .vimrc.after
Vim: strip trailing whitespace on save for code

This commit adds a function which strips the trailing whitespace from
a file. It first maps this function to the command `:Strip`, so that it
can be manually triggered by the user. It then adds an autocommand that
calls the function when code files (right now, a user-defined list of
filetypes I think I would want this done for) are saved.
Vim: update comment formatting in .vimrc.after
Vim: in JavaScript files, use soft tabs
Vim: use only openclc syntax checker for OpenCL

This sets the list of allowed syntax checker for Syntastic to include
only the openclc checker (which uses Apple's OpenCL compiler built into
OS X to compile and check the file for errors.)

You can trigger Syntastic to check a file for errors using the
`:SyntasticCheck` command. The errors will be highlighted, or can be
viewed as a list with the `:Errors` command.
Vim: fix bug in update.sh with sub-submodules

Previously, if a submodule's submodules became outdated when we pulled
the latest commit of the submodule, we didn't correctly update those
sub-submodules. This changes now does so.
Vim: update.sh automatically commits updates

Now, when it updates the plugins to the latest versions, it
automatically commits those updates to git. This helps prevent bugs
where the user tried to re-run update.sh when existing updates were not
committed.
Bash: Support Morgan Aldridge OS X tools directly

Instead of using an out-of-date copy of Morgan Aldridge's tools-osx
directory for things like our `trash` script, this commit allows us to
use a checkout of his tools-osx repo directory.

We first `rm` our out-of-date `trash` script from `./bin/trash`. Then,
in ./.bash_profile, we add a line which adds the 'src' directory of our
tools-osx checkout to the PATH.

While tools-osx nominally comes with an install script, this script
copies all of the scripts contained in that repo to /usr/local/bin.
I would rather not have these scripts installed into a global
directory,
especially not one managed by Homebrew, so it's easier to just add
their
location to the PATH (and to compile the one MacRuby script manually.)
Bash: change path to tools-osx; add diagnostic msg

We change the path of tools-osx from
'~/Documents/code/mac-scripts/tools-osx/src' to
'~/Documents/code/tools-osx/bin'. This keeps it out of our mac-scripts
directory, which is already linked in ~/. It also makes sure to add the
compiled bin directory, not the src directory.

Our ~/.bash_profile script will now display a message if it doesn't
find
tools-osx in the expected spot on terminal login. This is the only set
of tools .bash_profile will audibly complain about if missing, simply
because it's so useful, yet easy to forget to download and compile it
when installing a new system.
Vim: add indent guides plugin (\ig keymap)