Refactor: Swap order of checking for git vs subversion repositories.

We use git the most so checking for subversion repositories is almost
always a waste of time.
Refactor: Move the patterns we use for git divergence into the env file

--------------------------------------------------------------------------------
Branch:        feature/add-plugin-for-releasing-gems
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Add git-versions subcommand

It displays all version tags on the repo.  It can handle various version
styles such as:

* 0.10.0
* 0.10.0
* 0.10
* 0.10beta1
* 0.10-beta-1
* 0.10.0.rc.1

Any of these styles can have an optional `v` in front of them like so:

`v0.10.0.beta1`

Additionally, any of the above styles can have an optional `release` or
`releases` in front as a way to organize into folders in a git GUI.

* release/0.10.0
* releases/v0.10.0beta1

--------------------------------------------------------------------------------
Branch:        feature/add-plugin-for-releasing-gems
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Non-existent remote branches no longer show errors

Previously when deleting a remote branch that didn't exist (via rmb) it
would show an error.  We don't care.
Feature: Add a helpers section to the shell files with _sw_msg function

It outputs a string in the specified color.  Example:

```
_sw_msg brt_red "DANGER WILL ROBINSON!!"
```

--------------------------------------------------------------------------------
Branch:        feature/add-plugin-for-releasing-gems
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Add a gem plugin for working with Rubygems
fixup! 980200b618a3d8507603ca88fd41a0e7e158b65a
Refactor: The gem plugin requires patchutils to be installed
Refactor: Add _sw_git_version_tag_exists
Refactor: Add _sw_git_diverged
Refactor: Add _sw_git_version_commit_exists

This checks for "Version Bump to 0.10.0", etc.  It allows the version to
be preceded by a 'v', is case insensitive and allows the 'to' to be
omitted.  Another valid example would be "version bump v0.10.0".
Feature: Add an amazing 'grls' command

This does everything except make your breakfast in the morning.

Read through the code for all the features, but it handles all the use
cases that I could think of for pushing a gem release.

* can push to Rubygems or Gemfury
* can update your gemspec with the proper version via a `version.rb`
  file
* creates a 'version bump' commit for you
* properly handles a `bundle install` for those who check in their
  `Gemfile.lock`s even the `bundle install` updates more gems than the
  one you're releasing
* won't update the repo if the repo already contains a commit message or
  tag for the version you're trying to release
* if you are trying to push a prerelease version on master
* if you are tyring to push a stable version from a topic branch
* if you don't have a tracking branch
* if you're trying to release a version that doesn't match the gem's
  current version

And more!

--------------------------------------------------------------------------------
Branch:        feature/add-plugin-for-releasing-gems
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>
Feature: Add a 'gvsn' command to quickly view the current gem version

--------------------------------------------------------------------------------
Branch:        feature/add-plugin-for-releasing-gems
Signed-off-by: Jeff Felchner <accounts+git@thekompanee.com>