(PUP-500) Translate acceptance tests to spec

These tests have nothing to do with the full application stack and are
only checking that the semantics of collections are correct. This
removes this acceptance test in favor of the existing integration spec
tests, which run about 100 times faster and many times more reliably.
(PUP-500) Test realize for realz

The realize() spec tests didn't really do much since they mocked out so
close to the function itself. This calls it in a manner that puts
resources in the catalog and checks that they are there.

The accpetance tests for the realize function are no longer needed.
(PUP-500) Increase coverage of collection queries

The tags and array handling of collection queries is "special". This
adds some test coverage around that behavior.
(PUP-500) Add coverage for +> on collection

The +> form of collection hadn't been covered in any test cases that I
could find. This adds some coverage.
(PUP-391) Fix INVALID_FILE_ATTRIBUTES on x64

 - The GetFileAttributes Win32 API call returns a DWORD, which is a
   platform independent 32-bit wide unsigned integer:
   http://msdn.microsoft.com/en-us/library/windows/desktop/aa364944(v=vs.85).aspx
   It's max value is 4294967295:
   http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
 - FFI::Pointer.new(-1).address is platform dependent and on x64 is
   18446744073709551615, the max value of a 64-bit wide unsigned int.
 - The INVALID_FILE_ATTRIBUTES constant is a valid return value of
   GetFileAttributes and is defined in winbase.h as:
   #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
 - Therefore INVALID_FILE_ATTRIBUTES should be defined as 0xFFFFFFFF
(PUP-391) Remove unused file19windows.rb variable
(PUP-391) Use FFI.errno instead of GetLastError

 - In commit bf6f5c4e67c527d97da2dd3ee692692c8b9a8981, @@GetLastError
   was introduced as a band-aid to ensure the appropriate error code
   was read out of the thread local storage after a Win32 API call was
   made.  At that time, not all of the code had been converted to FFI
   compatible and not all gems had been upgraded to FFI compatible.
   Calls still made using Win32API were not captured by FFI.errno (which
   only calls GetLastError *after* making an FFI defined Win32 API call)
   resulting in a number of test fails.  The solution at the time was
   to manually call GetLastError instead to retrieve the value set by
   SetLastError.
 - Now that all Win32 API calls are made through FFI, FFI will
   automatically capture API results by calling GetLastError, and we
   can remove the unnecessary binding to GetLastError here.
(PUP-1281) Ensure don't override stdout/stderr (windows/ruby2)

This provides a more deterministic set of specs that determine whether we have
wrapped $stderr/$stdout or not based on ruby version.
(PUP-391) Fix Rdoc 4+ specs on Windows Ruby 2 x64

 - When calling the document method on RDoc and the root option has not
   been specified, RDoc will provide a default in the options class:
   @root = Pathname(Dir.pwd).  NOTE: This does not affect RDoc 3.9.5
   that ships with Ruby 1.9.3 on Windows, only RDoc 4.0.0+ that ships
   with Ruby 2.0.0+ on Windows.
 - The win32-dir monkey patches the Dir.pwd method, and instead of
   using / separators like the rest of Ruby, it uses \ as a path
   separator.
 - RDoc uses Pathname, specifically the relative_path_from method
   which expects / separators, and gets confused with \.  Therefore,
   provide a workaround to ensure that Windows uses the appropriate
   / in paths.
(PUP-391) Ruby 2 exception type changed to EISDIR

 - File.open now raises EISDIR when a path is a directory, prior to
   verifying permissions in Ruby 2.  Files continue to return EACCESS.
Revert "(PUP-392) update win32-eventlog"

This reverts commit cffa48679b20362b3a50403a7460c1400524d790.

We need to revert win32-eventlog updates for now since it now has
dependencies on a library that doesn't exist in Windows 2003.
Merge branch 'pr/2839'

* pr/2839:
  Revert "(PUP-392) update win32-eventlog"
Merge pull request #2836 from zaphod42/issue/master/pup-500-define-collection-semantics

(PUP-500) Increase coverage of collection queries
Merge remote-tracking branch 'rob/ticket/master/PUP-1281-colors-specs'

* rob/ticket/master/PUP-1281-colors-specs:
  (PUP-1281) Ensure don't override stdout/stderr (windows/ruby2)
Merge branch 'pr/2829'

* pr/2829:
  (PUP-391) Ruby 2 exception type changed to EISDIR
  (PUP-391) Fix Rdoc 4+ specs on Windows Ruby 2 x64
  (PUP-391) Use FFI.errno instead of GetLastError
  (PUP-391) Remove unused file19windows.rb variable
  (PUP-391) Fix INVALID_FILE_ATTRIBUTES on x64
(maint) Remove duplicated logging of error.

This removes a duplicated logging of error when attempting to
override an already set resource parameter. This used to result in
the error showing up three times on the console instead of the expected
two.
Merge branch 'master' of ssh://github.com/puppetlabs/puppet.git
(PUP-1281) Simplify test for wide console behavior

Previously, we were verifying that stdout and stderr were wrapped in WideIO
objects in ruby 1.9. However, this doesn't work in CI, because jenkins
redirects stdout and stderr.

This commit simplifies the test to not be as environmentally sensitive. It
just verifies that the WideConsole and WideIO classes have been defined in
ruby 1.x, and not defined in 2.x.