WIP: (PDB-1034) Ezbake changes to get PDB source based builds working

This involves a rework of the ezbake_utils to provide more capability to fully
install PuppetDB using these helpers.

* In general, the main API for install_from_ezbake has been kept as it is, but
  some arguments are now optional for convenienence
* We now do the lein install process, but using a local maven repository to
  avoid collision with other projects running on the same host.
* install_termini_from_ezbake now added to install that component
* The make interface on ezbake has been cleaned up somewhat, so reduce the
  amount of extra work the helper has to do. This patch reflects those changes.
* Validate for support up front, this makes the tests easier and the failure
  more centralized.
* Automated the retrieval of project name and version if not provided to the
  helpers. This suits the case where a project is a singleton as opposed to
  a composition.
* ezbake_local_cmd has been added to generalize this kind of system invocation
  and simplify testing.
* ezbake_make generalizes the way we invoke make, and simplifies testing.
* install_ezbake_tarball_on_host has been created to generalize this step for
  the termini and service based installations to re-use. Its idempotent, in
  that it checks to ensure its not already installed.
* conditionally_clone was modified to support being passed a branch if required,
  so in the future we can simplify working on a development branch.
* Lots of yarddoc cleanups
* Full rspec coverage

Signed-off-by: Ken Barber <ken@bob.sh>
Did you look into whether or not a more generic version of this is already available in Beaker?

If not, it'd be a good idea to look into doing that. @kevpl or @anodelman may have a better idea of what's available or if this sounds like something that could be generall useful.