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.