(PUP-2871) Add :install_options and :uninstall_options to the pacman provider

Without this patch, a user unfamiliar with the pacman provider might write
attempt to add flags to install and uninstall, not knowing that they will fail.
This patch adds support for these two flags to ensure a more cohesive experience
across puppet.
(PUP-2953) Remove masterlog option

Pull the `masterlog` configuration option as it is unused and causes confusion.
(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
(maint) use RSpec helpers over instance and local variables
(maint) Isolate specs from whether yaourt is installed
(PUP-2871) Concatenate install install_options to argv

Before this commit, install_options were passed as a nested array to
pacman/yaourt. This commit changes that to concatentate the values
with the argument vector.
(PUP-2871) Concatenate uninstall_options to argv

In the same manner as 9137faf uninstall_options were being appended as a
nested array value; this commit changes the uninstall method to
concatentate options to the array.
(maint) Make pacman (un)install_options private

These methods should not be called by any outside class; this commit
makes them private and removes the tests that invoke them directly.
(PUP-2388) Puppet acceptance for Ruby 2 x64

 - Select puppet-win32-ruby branch based on the :ruby_arch host variable
 - Apply permissions a little differently based on how file paths are
   setup in the newer Ruby 2 builds
 - Note that at this time, the puppet-win32-ruby build for x64 does not
   work on Windows 2003 x64 due to 2 missing functions in MSVCRT on that
   platform
 - YAML job definitions are updated in subsequent commit
(PUP-2388) Update Windows Jenkins matrix defs

 - Ensure that there are single YAML files per job type, which allows
   for a more granular selection of node definitions through Jenkins.
   NOTE: by using job definitions that are laid out horizontally
   (by file), rather than adding multiple node definitions to a single
   YAML file, this allows for better parallel execution of the suite.
   Agent requests are presently serialized within Beaker when all agent
   definitions occur within a single YAML configuration.
 - In that vein, trash these (though Git may show some as renamed):
    win2003-all.yaml
    win2008-all.yaml
    win2012-all.yaml
    windows-all.yaml
 - Spec out all valid combinations of 2003, 2003R2, 2008, 2008R2, 2012
   and 2012R2 with Ruby x86 and Ruby x64 where applicable, depending
   on what the platform supports.
 - Not all of these configurations will be used, but keep all of the
   definitions for the sake of local testing / maintaining a valid list
   of operating systems where Puppet could be run on Windows.
 - Note that FILECOUNT was also removed as a Beaker option where it was
   defined, since it is a deprecated option.
 - Note that at this time, the puppet-win32-ruby build for x64 does not
   work on Windows 2003 x64 due to 2 missing functions in MSVCRT on that
   platform
Merge pull request #2918 from adrienthebo/fixup/master/pup-2871-install-uninstall-options-pacman

Fixup/master/pup 2871 install uninstall options pacman
(PUP-398) Munge package source on Windows

Adding munge and slashreplace method to windows package provider
to ensure successful installation of packages.  Validation in the
type validate() not possible because we haven't chosen a provider
at that point.  Outputs debug as a means of notifying the user that
the source has been changed.
Merge pull request #2903 from Iristyle/ticket/master/PUP-2388-Puppet-acceptance-Ruby-2

(PUP-2388) Puppet acceptance for Ruby 2 x64
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
(PUP-2766) Make newer environment tests run in PE env

Newer directory environment tests were relying on setting commandline
parameters for puppet to point to a temporary config directory.  This
doesn't work well for passenger or PE, so added some utility methods to
backup the established confdir files we are shadowing and ensure they
are replaced.  Also some changes to permissions related to Puppet
running with passenger dropping root permissions.
Merge pull request #2920 from jpartlow/issue/master/pup-2776-directory-env-acceptance-uses-puppetpath

(PUP-2766) Make newer environment tests run in PE env
Merge pull request #2880 from fiddyspence/feature/2945/warning_on_windows_package_source

(PUP-398) Windows package provider source munging and test
(maint) make lmhosts disabled spec msg friendlier