Hadupils::Runners module for running hadoop apps

Hadupils::Runners::Hive knows how to run the underlying
hive command.  It assumes by default that hive lives at
$HIVE_HOME/bin/hive, and understands how to prepare options
for that command.

Parameters can be given to the runner as a list of things that
either #to_s nicely (and correspond directly to hive options)
or as things that have #hive_opts (a list of hive option strings).

TO-DO: add a Hadupils::Runners::Hadoop for driving hadoop calls.
Support for #hive_opts in HiveRC classes

To place nice with the new Hadupils::Runners::Hive runner,
both the Static and Dynamic Hadupils::Extensions::HiveRC classes
support the #hive_opts method, which gives the array of options
appropriate for applying a hive initialization file within a
hive run.
Hadupils::Extensions::Static for basic config dirs

A Hadupils::Extensions::Static instance wraps a directory of
static configuration files.  It does not gather assets.  It does
not calculate hiverc contents.  It expects to find static config
or init files within the directory.  It provides (for now) a
hivercs method to wrap a static "hiverc" file if one exists.
Hadupils::Search extensions for directories

* user_config method for finding a user-specific configuration
  directory; defaults to "~/conf", but can be set:

      Hadupils::Search.user_config = 'some/different/path'

* hadoop_assets method for finding the nearest "hadoop-ext"
  directory in the filesystem, starting at the present working
  directory and moving upward.  The basename to search for
  can be overridden via:

      Hadupils::Search.hadoop_assets_name = 'my-hadoop-assets'

These will be of use in our commands that look for such things to
be wrapped by various extensions.
Fix some bugs in Hadupils::Extensions

The Base extension now protects against a nil path when
gathering assets.

The Flat extension was returning File objects for the hivercs
method instead of the actual dynamic hiverc wrapper object.
Fixed.
Another Hadupils::Extensions::Base nil path bug

The initializer blew up if given a nil path, which
this fix now guards against (and tests).
Hadupils::Commands module and Hive command

Provides a basic interface for registering and running command
modules:
* register a handler for a command, and you can use this for
  entry point scripts to invoke your commands
* Hive command assembles a hive command using per-user static
  extension and a hadoop-ext flat extension
Broader unit test for the hive command

With minimal stubbing and custom assembly of a temporary directory
including both a "user config" and a "hadoop-ext", new unit test
in test/unit/commands_test.rb verifies that the
Hadupils::Commands::Hive class assembles the correct system call.
It verifies that the hivercs provided to the hive call have the
expected content.

The test is done with a Mocha expectation block and as such is not
very informative upon failure.  But it does exercise a fairly broad
swath of functionality within the library.
bin/hadupils entry point to Hadupils::Commands

A thin wrapper around Hadupils::Commands.run, meaning control
is ultimately dispatched to some class within the Hadupils
library.  The handling of parameters and such is up to that
handler.
Updated gemspec with executable, tests, etc.

Bumped version to the massive 0.1.0 release.  Massive, in all ways,
except the scope of the problem, the size of the code base, and the
depth of the documentation.