Add script to split a path into its components

This is a simple Python script in ~/bin/split_path which takes as an
argument a path, and returns three lines, the first with the directory
part of the path, the second with the base filename, and the third with
the extension (any/all may be empty.)
Bash: add unique_filename command to helpers.sh

This command takes in a filename and returns a filename based off of
that filename, but possibly with numerical suffixes added to it (before
the extension) so that the new filename is not currently used by an
existing file.

For example, if we want to generate ~/Desktop/brew.pdf, but we don't
want to overwrite any existing brew.pdf files, it may return
~/Desktop/brew_2.pdf.
Bash: tweak how wrap() function is implemented

Now uses printf instead of echo.
Bash: `brew graph` opens PDF if no errors

In the brew-wrapper script, `brew graph` will now generate the PDF to a
unique location based off ~/Desktop/brew.pdf (instead of overwriting
that file if it already exists.) You can also pass in a filename as an
argument, and the PDF will be written to that file.

It then checks to see if GraphViz generated the PDF without warnings or
errors. If so, it opens up the PDF. If not, it will show you the
warning/error messages.
Bash: init from .shell_private (kept from repo)

Virtually all my dotfiles are committed to a git repo and pushed
publicly to GitHub. However, some init commands may be too sensitive
for public consumption (such as setting aliases that allow me to login
to my personal server more easily.)

~/.bash_profile now checks if the file ~/.shell_private exists and, if
so, sources it. This allows those commands to be used to set shell
initialization, while keeping them out of the public ~/.bash_profile
file.
Vim: set textwidth to 100, & better formatoptions

We now set the textwidth to 100. However, we also set formatoptions
intelligently. Specifically, we don't include 't' as a part of it, so
Vim will not wrap lines of code at 100. However, we do include 'c', so
that it will wrap comments at 100. We also add some other
formatoptions, which are explained in the .vimrc.after, where we set
them.

Additionally, for gitcommit files, we *do* add 't' to formatoptions and
set the textwidth to 72, so that all lines in those files are, at most,
72 columns wide.