Use brief command name in help output

Up until now, developing and testing Twigg from inside a Git repo, the
help output has read nicely with a command name like `bin/twigg`. When
installing the gem and running it in other contexts, however, `$0`
expands to something ghastly like:

  /Users/greg/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/twigg-0.0.3/bin/twigg

This commit updates the help output to just say `twigg` instead, which
reads much better.

Change-Id: I1b07485e38ae3c7736c911b0d57d15a68c8d5ff9
Reviewed-on: https://gerrit.causes.com/27744
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Indent sections in help output for better readability

With this commit we now render:

  Heading:
    content

  Heading:
    content

in the help output, rather than:

  Heading:
  content

  Heading:
  content

which makes for better readability.

Change-Id: I598085366a87c3ba8640348df4db1e3d761afc0e
Reviewed-on: https://gerrit.causes.com/27745
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Add Rakefile to twigg subdirectory

At the moment, this is the one subdirectory that has specs, so give it a
standard Rakefile like Bundler can produce with `bundle gem`, and which
will run the specs when you execute `bundle exec rake` in this
directory.

Change-Id: I95d33e4eb9eed8c821c6f3eaff9e4d1c41ba7c64
Reviewed-on: https://gerrit.causes.com/27746
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Add top-level Rakefile that runs specs from subdirectory

This is the first step; in the future I plan to add some specs for the
other subdirectories, and also likely tasks for building and releasing
the various gems in the repo.

Change-Id: I09b4b34137ed4296dad1e60e16d4e386e0579d3f
Reviewed-on: https://gerrit.causes.com/27747
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Add release Rake tasks for twigg gem

This is a first cut at some Rake tasks to take the monotony out of
cutting new Twigg releases, while eliminating or reducing the likelihood
of a class of potential human errors. More to come later.

Top level tasks:

  rake twigg:build  # build twigg gem
  rake twigg:push   # push twigg gem to RubyGems
  rake twigg:spec   # run twigg specs
  rake twigg:tag    # tag twigg gem

twigg/ subdirectory tasks:

  rake build  # build twigg gem (twigg-0.0.3.gem)
  rake push   # push twigg gem (twigg-0.0.3.gem) to RubyGems
  rake spec   # Run RSpec code examples
  rake tag    # tag twigg release (twigg/v0.0.3)

The tasks have a number of checks to minimize the likelihood of doing
stupid things:

  - prompt before each "dangerous operation"
  - provide contextual info before such prompts (eg. show HEAD commit,
    or remote)
  - make sure we only ship built gems if they came from a non-dirty
    worktree (ie. we built the committed code, not whatever random code
    was in the worktree)
  - make sure we only ship built gems that are based on cherry-picked
    (published) commits
  - make sure we only ship built gems that were made with an up-to-date
    bundle present

Change-Id: I4c4332c622512ad83689c6d2159b9ca24ed36614
Reviewed-on: https://gerrit.causes.com/27748
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>