(maint) Correct ssl/puppet_cert_generate_and_autosign test to do what it says it's doing.

Prior to this commit, the test was incorrectly specifying autosign=false
when attempting to test the behavior when autosign is true. This looks
like a simple copy-paste error as the test right above is exactly the
same. This commit correctly specifies the autosign value.
(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-1177) allow parsedfile providers to choose a default mode

The ParsedFile provider baseclass and its companion Util::FileType module
employ Tempfile for pre-buffering generated files. If there is no actual
file at the final desination yet, copying the tempfile will preserve its
permissions, which implies a mode of 0600.

This is not desirable for all files managed by ParsedFile providers. Therefor,
the ParsedFile provider baseclass now provides an interface to change this
default mode by overriding a method.
(maint) move the file mode tests to the files spec module

It is helpful to have a simple helper method to match desired file modes
from spec tests.
(PUP-1177) make sure ssh_known_hosts is not created with mode 0600

The default mode for files that a ParsedFile provider newly creates
is 0600. This makes no sense for the ssh_known_hosts file, because it
contains public information that adds to security for all users.
(PUP-1177) update ParsedFile provider unit tests

The constructor for the :flat filetype accepts a second argument now.
This second argument must be taken into account when stubbing specific
invocations.
(PUP-1177) restore :ram FileType compatibility

The :ram filetype, as an alternative to :flat, is often used for spectests
of ParsedFile providers. The providers normally use the :flat type, but through
mocking, are made to use :ram in test context. Since the providers often pass
both supported arguments to the :flat constructor, it must be accepted by the
constructor of the :ram type as well.
(PUP-2079) Add no-op PMT generate template format.

Prior to this commit, the mechanisms available for writing skeletons containing ERB templates
were awkward at best (and broken at worst).

This change adds a new template extension for module skeletons that has the (somewhat counter-
intuitive, when described this way) behavior of performing no alterations to the given template.
In this way, one could place a file like `foo_bar.erb.template` in their module skeleton, and
generated modules would contain a file named `foo_bar.erb` with the exact contents of the
`.template` file.

This will also close pull requests #2468 and #2688.
(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-1811) Set regexp match vars on regexp match using in operator
(PUP-1811) Add tests for regexp search in array setting match vars
(PUP-2831) Make Puppet work with RGen 0.7.0

This updates the Gemfile to use RGen 0.7.0 (optionally).
In RGen 0.7.0 containment now works as specified, if something is
contained more than once, it moves to the last container that contains
it (by removing it as contained from all other containers). This caused
problems in the Function API where the block default Callable type was
reused for all signatures (and thus moved). There were also problems in
tests where the same type instances was contained in multiple locations.

This fixes these to use distinct instances.
(maint) Remove dead code
(PUP-2833) Make all types inherit PAnyType

Some types inherited PAbstractType (to indicate they where not
concrete). This just causes confusion when using the Ruby API
to check if a Type is PAnyType.

This makes all types inherit from PAnyType (which is the only
type inheriting from PAbstractType).
(PUP-2382) Remove 'win32/api' requires
(RE-1497) Remove quantal from build_defaults

This commit removes quantal from all build defaults because it is end of
life. It removes the defaults from the build_defaults yaml.
Merge pull request #2807 from clantant/RE-1497/stable/srcs

(RE-1497) Remove quantal from build_defaults
(PUP-2843) Fix INVALID_HANDLE_VALUE on Windows x64

 - Previous definition in Puppet::Util::Windows::File would work on x86
   but not x64.  Adjust the constant, and share the constant with
   Puppet::Util::Windows::Security.