(PUP-1576) Make hyphen in bare words legal (future parser)

This adds the ability to use a hyphen in a bare word. The result is the
same as if the bare word had been quoted in single quotes. It is not
allowed to start or end a bare word with a hyphen, those are always
interpreted as :MINUS.
(maint) Allow arrays, bools, and numerics to be frozen
(#20584) Add acceptance test for safer yaml handling in request body

This test uses the handling of report data as a proxy for all payload yaml
handling. It assumes that if we have safe yaml handling in one endpoint, that
the others will also be using the same code paths for deserialization and
therefore be patched correctly.
(#20584) Add acceptance test for safer yaml handling in query parameters

As in the previous commit this adds an acceptance test to make sure arbitrary
objects are not loaded from YAML. This tests input via query parameters, which
uses a different code path from YAML submitted in the body of a request.
Merge pull request #2393 from hlindberg/pup-1576_allow-hyphen-in-bare-words

(PUP-1576) Make hyphen in bare words legal (future parser)
Merge pull request #2396 from haus/maint/master/pup_208_merge_tests_up

(PUP-208) Merge acceptance tests from CVE-2013-3567 upstream
(maint) Fix typo in unicode escape in future lexer

The regular expression was missing a - between A and F
(maint) Use with_puppet_running_on in backported cve tests.
(maint) Remove desc for generate tasks

The benchmark generate tasks are only for internal use by the other
tasks that users should use (run and profile). Putting a descritpion on
it, though, made it visible in `rake -T` and `rake -D`. This removes it
so that users aren't confused.
(PUP-1144) Improve handling of underscore in variable names

The last segment of a qualified variable name is allowed to start
with an underscore. Previously this was only allowed for a single
segment.
(PUP-876) Add 'any' confine
(PUP-876) Enable upstart service provider on Redhat

This commit allows the upstart service provider to function on Redhat
systems. Redhat 6 included support for upstart and while it wasn't
widely embraced it is available for use.

The 'serial' and 'tty' services on Redhat 6 systems have instances which
the service type/provider cannot handle, so we have to ignore them for
the upstart provider to work out of the box.
Merge pull request #2399 from hlindberg/pup-1144_underscore-in-last-segment

(PUP-1144) Improve handling of underscore in variable names
(maint) Detect reparse when :code changes

Previously the detection for reparse didn't take into account the
parsing having been done from the Puppet[:code] setting. This meant that
if a test tried to compile several different manifests for the same node
it would only ever compile from the first value of Puppet[:code] and
subsequently reuse that for all other calls (even if Puppet[:code]
changed).

This adds a check for changes to Puppet[:code] to cause it to
re-calculate known_resource_types.
(PUP-542) Test the gamut of mutation

There are a lot of ways that the facts hash could be mutated. This
checks that none of those ways can happen.
Merge branch 'adrienthebo-issue/master/pup-542-deep_freeze_arrays_numerics_booleans'

* adrienthebo-issue/master/pup-542-deep_freeze_arrays_numerics_booleans:
  (PUP-542) Test the gamut of mutation
  (maint) Detect reparse when :code changes
  (maint) Allow arrays, bools, and numerics to be frozen
(PUP-1814) Make double backslash in sq string behave as documented.

This makes it possible to escapce a backslash in a sq string. 
Previously this did not work which made it impossible to end a sq string
with a backslash.
Merge pull request #2400 from hlindberg/pup-1814_double-backslash-in-sqstring

(PUP-1814) Make double backslash in sq string behave as documented.
(pup-1825) Allow use of facter 2.x

Before this commit, Puppet uses pessimistic versioning
(the ~> syntax) to specify that it could work with any Facter
version in the 1.x series greater than some minimum, but
was pessimistic about (i.e. didn't assume it supported) a 2.x
Facter.

In fact, the facter API to puppet has not changed in facter 2.x
so puppet can in fact work with a suitable 1.x or any 2.x. This
change replaces use of the pessimistic operator with explicit
version ranges, effectively extending the range previously provided
by the pessmistic operator to include the 2.x series.
(maint) Broaden managehome acceptance test on windows 2003

The previous regex only captured older facter operatingsystemrelease
values.  Now we're also sensistive to facter-2 operatingsystemrelease
output.