(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
Merge pull request #262 from justinstoller/feature/master/QENG-438-feature_flags

(QENG-438) Pass feature flags to all instances of `apply_manifest_on`