Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (PUP-2882) Verify available versions
(PUP-1680) Set accept-encoding to identity when http_compression is false

Override the Ruby 2.x default of setting accept-encoding to gzip when puppet http_compression is set to false.
(PUP-2948) enable rubocop for travisCI

Previously, the Rubocop gem was added to development and testing groups without
any further constraints. However, this caused failures in windows platform, due
to its dependency on json. Since we are using only multi-json, we do not want
to have this dependency added. So this commit restricts rubocop to
non-windows native rubies.
(PUP-2728) Remove rug package provider as default

We only support SLES 10.4 which uses zypper, and when zypper is present
we should always use it over rug. This commit removes rug as a default
provider; if zypper is not present then rug should be used as a fallback
due to the number of confine statements.
Merge pull request #2916 from vrthra/rubocop/puppet-4/gem-fix

(PUP-2948) enable rubocop for travisCI
Merge branch 'master' into puppet-4

* master:
  (PUP-2388) Update Windows Jenkins matrix defs
  (PUP-2388) Puppet acceptance for Ruby 2 x64
  (maint) Make pacman (un)install_options private
  (PUP-2871) Concatenate uninstall_options to argv
  (PUP-2871) Concatenate install install_options to argv
  (maint) Isolate specs from whether yaourt is installed
  (maint) use RSpec helpers over instance and local variables
  (PUP-2871) Add :install_options and :uninstall_options to the pacman provider
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) make lmhosts disabled spec msg friendlier
  (PUP-2766) Make newer environment tests run in PE env
  (PUP-398) Munge package source on Windows
Merge pull request #2917 from adrienthebo/issue/puppet-4/pup-2728-remove-rug-pkg-provider-default

(PUP-2728) Remove rug package provider as default
Merge pull request #2912 from Sharpie/2953-remove-masterlog-setting

(PUP-2953) Remove masterlog option
(maint) Remove unused property 'validater' attribute

The validater attribute was added to Puppet::Property in 1d739731, but
the code that would have used it was always commented out and later
removed entirely. Since this attribute isn't respected we can remove it.
Merge pull request #2924 from adrienthebo/maint/puppet-4/remove-unused-validater

(maint) Remove unused property 'validater' attribute
correct test description for http_compression disabled
(maint) Remove unused property 'munger' attribute

The munger attribute was added to Puppet::Property in 1d739731, but the
code that would have used it was always commented out and later removed
entirely. Since this attribute isn't respected we can remove it.
Merge branch 'master' into puppet-4

Conflicts:
	lib/puppet/defaults.rb
Merge pull request #2923 from adrienthebo/maint/puppet-4/remove-unused-munger

(maint) Remove unused property 'munger' attribute
Merge branch 'master' into puppet-4

* master:
  (maint) use $ruby_arch only if it has been set
Merge branch 'master' into puppet-4

* master: (23 commits)
  (PUP-2991) Add test case for user shell management
  (maint) Remove unused variable from directory.rb test
  (PUP-2991) Restore ability to manage shells on solaris
  (perf) Make small optimization to lexer by avoiding extra array
  (maint) Fix regression - negative string length came back after merge.
  (PUP-2860) Fix comments as pointed out in review
  (maint) Fix run of "empty catalog" benchmark missing current_environment
  (perf) Use faster polymorph lookup in bindings checker
  (maint) Remove extra abstraction PAbstractType - change to PAnyType
  (perf) freeze all string tokens at the source (in the lexer)
  (PUP-2860) Remove future parser's old lexer
  (perf) Make small adjustments to TypeCalculator
  (perf) Make small perf adjustments to TypeFactory
  (maint) Remove the unused class Visitor::Visitor2
  (perf) Make a series of small nips and tucks wrt performance
  (PUP-2860) Remove repeated assert_rgen from other sources.
  (PUP-2860) Make injector transform using faster visitor call
  (PUP-2860) Make micro improvement by removing redundant checks
  (perf) Make micro improvement in getting exported/virtual status
  (perf) Make micro improvment by avoiding a method call for getting line
  ...
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) Fix fact output error in environment acceptance tests
  (PUP-2912) Puppet FS symlinks in build/unpack
  (PUP-2912) Build/unpack spec tests w/o symlinks
(PUP-2987) Windows service runinterval parsing

 - Refactor parsing code to a separate method to cleanup run loop
Merge branch 'master' into puppet-4