(PUP-1852) Deprecate the 'search' function.

This function is deprecated because support for dynamic scoping
has been removed in general and this function makes it possible
to abuse the systems ability to search multiple disjunct name-spaces.
(PUP-1100) Create_resources syntax error message spec test

This commit adds a check for the create_resources syntax error message.
If there is a syntax error, the error given by puppet master is unclear.
This commits adds a test to check that the error message is correct and
makes sense.

This only happens when the resources are auto imported, which is why I
use a fixture directory.
(PUP-1100) Fix error message with create_resources and auto-loaded class

This commit fixes the error message displayed by PM when a syntax error
is present on an file auto-loaded by create_resources.
(PUP-2798) Remove warnings for reserved words in 3x regular.

We are issuing too many deprecation warnings for people to keep up.
The migration paths is to use the future parser/evaluator to "future
proof" manifests.

This only changes the warnings for 3x regular. And is basically a
reversal of part of PUP-1027 where these warnings were added).
(PUP-2382) Remove 'win32/api' requires
(PUP-2521) Don't use windows-pr constants

 - Somehow there were still some remaining constants referencing
   Windows:: which is part of windows-pr gem.  Most are already
   defined locally as of the code being ported to FFI.  Ensure that we
   use our internal constant definitions rather than those from gem:

    Puppet::Util::Windows::AccessControlEntry::CONTAINER_INHERIT_ACE
    Puppet::Util::Windows::AccessControlEntry::OBJECT_INHERIT_ACE
    Puppet::Util::Windows::AccessControlEntry::INHERIT_ONLY_ACE

    Puppet::Util::Windows::File::STANDARD_RIGHTS_ALL
    Puppet::Util::Windows::File::SPECIFIC_RIGHTS_ALL
    Puppet::Util::Windows::File::FILE_ALL_ACCESS
    Puppet::Util::Windows::File::FILE_GENERIC_READ
    Puppet::Util::Windows::File::FILE_GENERIC_EXECUTE

 - Add new constants to Puppet::Util::Windows::Error
    ERROR_FILE_NOT_FOUND
    ERROR_ACCESS_DENIED
(PUP-2521) Define Process constants locally

 - Previously, Process constants were used in a few locations throughout
   the code.  Capture the needed PRIORITY_CLASS constants in our local
   Windows Process class, and also define CREATE_NEW_CONSOLE.  These
   constants have moved in new versions of the win32-process gem.
 - Note that ext/windows/service/daemon.rb doesn't load Puppet code.
   The daemon only loads what it explicitly needs, so ensure the
   CREATE_NEW_CONSOLE constant is defined there.
(PUP-2521) Remove windows-pr mixins from daemon

 - synchronize and handle appear to no longer be used
(PUP-2682) Allow trailing comma after node matches

This adds the ability to have a trailing comma after the last
match in a node expression.
Merge pull request #2694 from Iristyle/maint/master/PUP-2382-remove-Win32-require

(PUP-2382) Remove uneeded 'win32/api' require
Merge pull request #2761 from roidelapluie/PUP-1100-fix

 (PUP-1100) Fix error message with create_resource and auto-loaded class
Merge branch 'pr/2699'

* pr/2699:
  (PUP-2682) Allow trailing comma after node matches
Merge pull request #2813 from Iristyle/ticket/master/PUP-2521-remove-windows-pr-gem

(PUP-2521) - Remove windows-pr gem - phase 1
Merge pull request #2750 from hlindberg/PUP-1852_deprecate-search-function

(PUP-1852) Deprecate the 'search' function.
Merge pull request #2781 from hlindberg/PUP-2798_Stop-reserved-word-warning-3x

(PUP-2798) Remove warnings for reserved words in 3x regular.
(maint) Fix microsoft_windows feature to return false instead of nil.

Fixing Puppet.features.microsoft_windows? to return false instead of nil.
(maint) Remove unnecessary facter stub in compiler_spec.rb.

Removing an unnecessary facter stub.
The stub is incorrect as value does not return a Fact object.
The correct stub is used below.

Also removing redundant require of puppet/rails.
(PUP-2104) Add cfacter setting to enable cfacter implementation.

Adding a --cfacter setting that will replace the facter implementation
with the native facter implementation if the following conditions are
met:

* cfacter is installed
* the version of cfacter is at least 0.2.0 (not yet released).
* facter has not evaluated any facts by the time the setting is set.

To accomplish this last point, certain default setting values needed to
be delay-evaluated as they relied on facts. Therefore a :default
for a setting now accepts a Proc and calls the Proc only once when the
default value is needed.
Merge pull request #2811 from peterhuene/alternative/facter

(PUP-2104) Add cfacter setting to enable cfacter implementation.