Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4
(PUP-2253) Change catalog reource ordering to be "manifest" by default
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2561) Fix spec test on windows
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4

* master:
  (PUP-2182) Add virtual_packages feature to package type.
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2582) Update apache vhost SSL settings
  (PUP-2505) Reject requests with unknown HTTP verbs
  (PUP-2505) Add test for delete handling
  (PUP-2505) Add method to specify delete handlers
  (PUP-2505) Implement DELETE verb for HTTP routing
  (PUP-2031) Fix broken range support in unless_uid parameter.
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2568) Remove unnecessary calls
  (maint) Reorder code to increase clarity
  (PUP-2519) Use File::PATH_SEPARATOR for environmentpath spec
  (maint) Add environment review tests
  (PUP-2519) Test agent with directory environments enabled
  (PUP-2519) Set environment for request or fail explicitly
  (PUP-2159) Serialize node.environment as environment_name
  (PUP-2519) Create fallback environment only for default production
  (PUP-2519) Ignore module directories if env does not exist
  (PUP-2519) Create the default directory environment
  (PUP-2581) Make illegal names interchangeable to legal variable work
  (PUP-2568) Downcase class name before validating
Merge branch 'master' into puppet-4
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) Relax error match for dynmic env puppet apply test
  (PUP-2182) Fix yum and zypper providers virtual_package feature.
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4
Merge branch 'master' into puppet-4

* master:
  (maint) Test a different cert for extensions
  (PUP-2385) FFI Puppet::Util::Windows::File
  (PUP-2385) Puppet::Util::Windows::File refactor
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master: (36 commits)
  (PUP-2639) Change default timeout to 3 minutes
  (PUP-2657) FFI Puppet::Util::Windows::Error
  (PUP-1843) Clean up hiera terminus
  (maint) Use transaction_with_resource helpers to build up catalog and transaction
  (maint) Use real types and providers to exercise post_resource_eval
  (PUP-2298) Use resource specific log_exception
  (PUP-1843) Refactor duplicate code
  (PUP-1070) cleanup empty/invalid lockfiles
  (PUP-1381) Add link to explanation of message
  (PUP-2360) Yumrepo type allows invalid values
  (PUP-2660) user: set the user should-value when generating ssh_authorized_keys
  (PUP-838) Use FFI helpers read_handle / read_dword
  (PUP-838) Process uses LookupPrivilegeValueW
  (maint) Use the travis config used on master to workaround rvm issues
  (PUP-838) GetExitCodeProcess checks FFI::WIN32_FALSE
  (PUP-838) FFI Puppet::Util::Windows::Process module
  (PUP-838) Move FFI code to bottom of process.rb
  (maint) Remove travis jobs which we know are failing to speed up travis runs.
  (PUP-840) FFI Puppet::Util::Colors
  (PUP-2382) FFI typedef for win32_bool / fix User
  ...
(PUP-2702) Change to unlimited caching as the default

The most effective and safe caching strategy for environments is
"unlimited" since it gives the user control over the resource utiliztion
of the master, provides a clear deployment point, and allows the master
to pick up any ruby code changes that are part of the new environment
code.
Merge pull request #2711 from zaphod42/feature/puppet-4/pup-2702-change-to-unlimited

(PUP-2702) Change to unlimited caching as the default