(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.
(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
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