(RE-552) Pushing gems requires credentials

Let's verify rubygems credentials actually exist before we try pushing
that gem
Merge pull request #238 from melissaanne/ticket/master/re-558-rubygem-credential-check

(RE-552) Pushing gems requires credentials
(RE-567) No really, don't ship if you say no
Merge pull request #239 from melissaanne/ticket/master/re-567-actually-dont-ship-if-no

(RE-567) No really, don't ship if you say no
Add `ex` method combining best of %x and sh

This commit adds a new utility method, `ex`, which combines the behavior of
`%x{cmd}` and rake's `sh "cmd"`. `%x{cmd}` has the benefit of returning the
standard out of an executed command, enabling us to query the file system, e.g.
`contents = %x{ls}`. The drawback to `%x{cmd}` is that on failure of a command
(something returned non-zero) the return of `%x{cmd}` is just an empty string.
As such, we can't know if we succeeded.  Rake's `sh "cmd"`, on the other hand,
will raise a RuntimeError if a command does not return 0, but doesn't return
any of the stdout from the command - only true or false depending on its
success or failure. With `ex(cmd)` we purport to both return the results of the
command execution (ala `%x{cmd}`) while also raising an exception if a command
does not succeed (ala `sh "cmd"`).
Merge pull request #240 from haus/maint_add_ex

Add `ex` method combining best of %x and sh
Revert "Merge pull request #232 from shrug/maint/qe-465"

This reverts commit afc957cf748f23d7fdd0564312a699dd7175c04b, reversing
changes made to 50e80b26da3bc704a9c785f1c3f225d789d4d021.