Add the commands to install OSX.
fixup merge conflicts
Get OSX installation working for realz

Previously we were using the passed in version for the versions of puppet
and its dependencies. This adds :facter_version and a :hiera_version keys
so that we can install those dependencies explicitly on platforms that we
must. It also adds the `-pkg` opt to the installer command to work on
newer OSXs.

Signed-off-by: Justin Stoller <justin@puppetlabs.com>
Provide default gem installation

This allows the `install_puppet` command to accept an additional parameter
`:default_action` which, if set to 'gem_install' will attempt to install
puppet from gem if it cannot otherwise install puppet. The default for
:default_action is still to fail hard.
Use specified versions if possible

Previously we allowed passing :version, :facter_version, and/or
:hiera_version to `install_puppet` but only respected `:version` with
windows and osx, and the others only on osx. This will attempt to
install the versions specified for any package specified. The version
information is still optional on linux machines, and there is no way for
us to respect the dependency versions on windows (since our windows
package is an omnibus package).
update documentation
This fixes small bugs within the install_puppet method
Fixup windows support for FOSS

Previously the PATH for windows was only being set to include executables
from git repos, not executables installed from native packages. This
includes the default installation path for native windows packages in the
FOSS command creation.
fixup test
add tests for new install_puppet functionality
Refactor `puppet_install`

This changes the `puppet_install` function to be more readable and reduce
code duplication. It does not change any behavior.
(QENG-438) Pass feature flags to all instances of `apply_manifest_on`

Prior to this there was a number of configurable options that would
tweak Puppet's behavior when using apply_manifest_on. However there
was no good way of setting all instances of apply_manifest_on to use
a certain set of flags. e.g. set "future" parser to be true for a specific
run of suite without changing all of the tests to explicitly set the
future parser option on apply_manifest_on. This allows users to set default
flags to be passed to puppet when apply_manifest_on is called in the host
file, or in a pre-test step.

Example Host file:
  HOSTS:
    master:
      roles: [ 'master', 'agent' ]
      default_apply_opts:
        parser: future

Example BeakerRSpec spec_helper.rb
  hosts.each do |host|
    host[:default_apply_opts] ||= {}
    host[:default_apply_opts].merge!( :parser => 'future' ) if ENV['FUTURE_PARSER'] == 'true'
  end
OptionsHash is already indifferent
Improve documentation for Open Source installation methods
(MAINT) aws-sdk 1.43 breaks beaker specs

- pin to aws-sdk 1.42.0
Merge pull request #310 from anodelman/maint

(MAINT) aws-sdk 1.43 breaks beaker specs
Merge pull request #262 from justinstoller/feature/master/QENG-438-feature_flags

(QENG-438) Pass feature flags to all instances of `apply_manifest_on`
Merge pull request #299 from justinstoller/update-to-install_puppet

(QENG-{768,769,771}) Update to `install puppet`
(MAINT) Bugfixes in host.exec and logger.

* Honor the :silent option in host.exec
* Many logging functions seem to try to pass positional parameters in to
  optionally_color but mistakenly flattened the list into a single argument.
  This made it impossible to choose whether or not to add a newline.
* Remove call to logger.notify with bogus arity. Seems like "args" probably
  becomes an empty array which made this method call okay previously. However,
  if there are no arguments in "*args" then no args get passed down to
  optionally_color, thus the arity of the original "*args" is preserved.

Signed-off-by: Wayne <wayne@puppetlabs.com>
(MAINT) Make retry_command output easier on the eyes.

Silent all the "on" commands by passing silent => true to the underlying
host.exec in the options map. Instead, handle console/logfile output for
retry_command manually. Should significantly reduce logfile size for
applications that make extensive use of retry_command, not to mention making
stdout more readable.

Signed-off-by: Wayne <wayne@puppetlabs.com>