Bash: increase history size
Bash: prevent `npm` output when setting $PATH

If npm was configured with a high loglevel (as is now the default in
homebrew's install of node), running `npm root` may print additional
debugging info to STDERR. Since we call `npm root` to set the $PATH to
include local npm bin directories, and we do that every prompt display
(via $PROMPT_COMMAND), this could print a ton of junk in your terminal
every time the prompt is displayed.

This commit redirects `npm`'s STDERR to `/dev/null` to prevent this.
Bash: add support for `bash-completion2` on Mac

Homebrew apparently created a new package for bash completion v2. Our
old .bashrc had support for `bash-completion` (i.e. v1.x) but
`bash-completion2` changes the directory its bash scripts are stored
in. This commit updates .bashrc to support that new location (though
the old location continues to work, too.)
Bash: all terms share history (disabled atm)

This commit adds (commented-out, at present) command to .bash_profile
which allows terminals to share history as it is updated.

For example, you open up two terminal windows, term1 and term2. In
term1 you type `echo "hello"`. Pressing 'up-arrow' in term1 will show
`echo "hello"`. This is as before. In term2, type `echo "goodbye"`.
Pressing 'up-arrow' once in term2 will show `echo "goodbye"`, and
pressing it twice will show `echo "hello"`. This is the new behavior:
term2 now includes term1's commands in its history, whereas before you
had to open a new terminal window to see the latest history of all
other terminals.

Note: if you now press 'up-arrow' on term1, it will only show `echo
"hello"`, not `echo "goodbye"`. This is because the history is only
updated on prompt display. Pressing 'enter' in term1 or running any
command and having it return will cause the history to be updated with
term2's commands, and now 'up-arrow' will show 'goodbye' and 'hello'.
Bash: only config prompt if `$TERM != dumb`

This is in response to `tput` not reacting well when run in a script
called from SourceTree. The $TERM in that case is `dumb` and termcap
doesn't have a database capable of a lot of the stuff we want to do
(colors, etc.) in that case.

This commit adds a `if...fi` block around a lot of interactive mode
setup commands in ~/.bash_profile, and indents the code inside by
another level. For this reason, a lot of lines are marked as 'changed'
in this commit only because their indentation changed. Be warned.
Bash: fix some indentation in `~/.bash_profile`
Bash: ensure prompt always occurs on its own line
Bash: fix backslash issue when setting $PS1

If the string we use to set $PS1 is double-quoted, we need to use `\\`,
not `\`. This didn't seem to be causing problems, but is good practice.
Bash: disable customized $PS2

Didn't really work right (especially with dirtrim stuff) and caused
more problems than it fixed. Disable it for now.
Bash: add wrapper to `ssh` which set TERM title

We wrap the `ssh` command in a wrapper function which sets the terminal
window/tab title to the server hostname, then calls `ssh` as normal.
When the command returns, it resets the title to its previous value.
Bash: fix bug in 'prompt on newline' function
Bash (Mac): `bashrc` alias opens ALL bash config
Merge commit '84f29a04b64125bbbe628ea4d371e'

Conflicts:
        home/.bash_profile