(PUP-2663) Allow string to contain leading sign in numeric conversion

This makes it possible to use an unary +/- in a string. The sign
of the converted value abides by the unary string sign. White space is
allowed around the sign, and at the end of the string.

'+ 2' + '- 2' == 0

This is of value when dealing with original data in string form
that needs to be converted. Without this it is especially difficult to
pass a negative value around in string form.
(maint) Remove redundant code
(PUP-2691) Re-adding the missing ‘description’ property to P::MT::Metadata.

Prior to Puppet 3.6.0, users had a ‘description’ property which they
could reliably expand into their module skeleton’s ERB templates.  This
property was removed from the default set of properties in Puppet 3.6.0,
which effectively broke template expansion for users relying on it.

This change ensures that users can continue to rely on this property.
(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.
(maint) spec: allow expectations of resources from compiled manifests

Add logic to the PuppetSpec::Compiler.apply_compiled_manifest method so that
a spec test can supply a block that processes the single resources
that comprise that catalog that was compiled before it is run in a transaction.

As a proof of concept and general helper, add a apply_with_error_checks method,
that adds an expectation to never send an :err signal to each resource. This
makes spectest debugging much easier, because without expectations,
the transaction will just finish and the only reported error will be that the
end result is not as expected. When the expectation is added to each resource,
rspec will display all resource error messages as failed expectations.
(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-2816) Default forge override in Rakefile

The override for the fake forge to use only showed up in the
ci-bootstrap-from-artifacts.sh, but that only affects how the jenkins
jobs handle the pipeline. When you run the tests on your own machine,
you aren't going to use that script, which would mean that it would use
the wrong fake forge. This moves the override to the Rakefile so that it
will always take effect.
(PUP-2822) Improve description of disable_warnings setting
Merge pull request #2790 from zaphod42/issue/stable/pup-2816-using-wrong-fake-forge

(PUP-2816) Default forge override in Rakefile
(PUP-2750) Add hierarchical metric ids to profiler

This commit modifies the signature of the
`Puppet::Util::Profiler.profile` method to accept a new argument,
which is basically a "metric id".  The argument takes the form
of an array of strings/symbols, allowing us to group specific sets of
profiling data into hierarchies and report aggregate profiling
statistics at any level of the hierarchy.

It also adds a new profiler, `Aggregate`, which extends the
existing `WallClock` profiler.  The new profiler tracks the
aggregate timing data based on the metric id hierarchy,
and logs a message containing the aggregate data
at the end of the run.
(PUP-2663) Adjust regexp to only match complete string, and not \n

\s includes newline when ^$ is used.
^$ skips leading and trailing optional matches
\A\z does not skip as they force matching of strings start/end
Merge pull request #2768 from cprice404/feature/master/PUP-2750-support-hierarchical-profile-data

(PUP-2750) Add hierarchical metric ids to profiler
(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 #2794 from clantant/RE-1497/master/srcs

(RE-1497) Remove quantal from build_defaults
Merge pull request #2700 from hlindberg/PUP-2663_allow-unary-plus-minus-string-numeric-conversion

(PUP-2663) Allow unary plus/minus string numeric conversion
(PUP-2750) Fix aggregate profiler spec tests on windows

It appears that on Windows, the precision of the Time object is
not fine enough to guarantee that we'd get a non-zero value
for the empty code blocks that we were timing in our tests.

This commit simply adds a 10ms sleep to the tests to ensure that
that enough time will have passed for us to be able to make
an assertion that the elapsed time was greater than zero.