(QENG-514) Provide the Command Beaker was Ran with in Debug Output

This prints at the end of the run the application & arguments to stdout
if log level is debug *or* if the run failed.
Do not destructively consume ARGV

Previously we were calling parse! which has the side effect of deleting
options from ARGV as it recognizes them. To work around this behavior
in previous commits, the desired options needed to be saved before hand.
Simply not mutating ARGV is much easier. Also adds a test.
(MAINT) remove spaces before EOL

- cleanup!
Add option to preserve the built docker image

With the nodeset config option 'docker_preserve_image' we can disable the image deletion.
This is useful when running in CI environments and multiple containers are built using the same dockerfile content and re-used allot of times.
Follow redirects to get root keys script

This URL has changed from raw.github.com to raw.githubusercontent.com,
but the curl command wasn't following redirects. This updates the URL
and also adds the appropriate flag for redirects to protect against any
such future redirects.
(QENG-672) Beaker will ignore host-specific pe_dir if a global pe_dir...

... is set

- check the individual host version setting first then default to the
  global options hash
Merge pull request #246 from justinstoller/feature/master/QENG-514-print_original_command

(QENG-514) Provide the Command Beaker was Ran with in Debug Output
Merge pull request #253 from electrical/docker_image_removal

Add option to preserve the built docker image
Merge pull request #257 from anodelman/upgrade-ver

(QENG-672) Beaker will ignore host-specific pe_dir if a global pe_dir...
Merge pull request #252 from anodelman/maint

(MAINT) remove spaces before EOL
create beaker 1.11.1 gem
(gh-255) GCE metadata value not specified

- do not set nil/'' values as metaData
- do not set metaData at all if there are no values
Merge pull request #256 from anodelman/google-cloud

(gh-255) GCE metadata value not specified
Merge pull request #261 from anodelman/make-gem

create beaker 1.11.1 gem
Add `razor` command helper to beaker

This adds a helper for testing Razor

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Merge pull request #263 from daniel-pittman/add-razor-command

Add `razor` command helper to beaker
(QENG-672) Ensure beaker checks pe_dir from host as well as pe_ver

The previous code for QENG-672 only fixed the version lookup, not the
source path lookup.
Merge pull request #264 from branan/qeng-672

(QENG-672) Ensure beaker checks pe_dir from host as well as pe_ver
(maint) Always use puppet to stop the agent service

Previously, the agent stop used platform-specific init management
tools. This is kind of silly, since we know that puppet exists. This
simplifies the agent stop to simply use puppet to stop the agent.
Merge pull request #254 from nicklewis/root-keys-redirect

Follow redirects to get root keys script