Bugfix: git update does not try to update if branch has diverged

Previously git-update would try to update if the local branch had diverged from
the tracking branch _before_ the update.

Typically this happens when the user does a rebase outside of a 'git-update'.
Because of the fact that we can no longer figure out where the local branch
originally diverged from the remote, we cannot reliably rebase the branches.

Ideally, if the repo was using Gerrit change IDs, we could figure this out
(because Gerrit change IDs do not change even when a commit is rebased), but
that has not yet been built into 'git-update'.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: If a git-update rebase fails, do not do anything else

Previously we were attempting to do other things after a rebase failed, but this
was a problem if we want to automatically re-attempt a rebase for the user.

The rebase begins fine, but it does not halt and wait for the user, instead it
continues on its merry way through the script, thereby causing chaos.

The solution is simply to not do anything else if the rebase fails.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Refactor: Rename local_branch_diverged_from_tracking for consistency
Bugfix: Don't auto-retry rebase if the remote rebase fails on git-update

The auto-retry if the remote tracking branch rebase failed was very problematic.
There are a lot of things that could go wrong here and therefore I feel that the
better course of action for now is to give the user some manual instructions to
follow.

Eventually, as I said in 5a3cac1, using Gerrit change IDs could allow this to be
done automatically.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Bugfix: When running 'ss' in the root of a Rails app, it would fail

This was because it was returning a blank string for `_sw_rails_app_root` which
mean it was effectively executing `cd`, which takes you to the root of the home
directory.  Once there, there's obviously no `bin/rails` available and the
command would fail.

--------------------------------------------------------------------------------
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>