(#21409) Preserve original error when propogating

Previously the original error was lost when some of the error handling
routines dealt with it (such as Puppet::Util.exceptwrap). This allows
the original error to be propogated out along with it.
(#21409) Ensure that create_resources acts the same as a resource decl

The previous implementation of create_resources duplicated most of the
logic of Puppet::Parser::AST::Resource, but had variations which meant
that it didn't actually behave the same. This lead to the possibility
that what should have been equivalent statements in the language did not
always result in the same catalog. This re-implements create_resources
to construct the AST that is needed to create the requested resources
and evaluate the resulting structure. This should only be able to
differ from actual resource declarations in the language if the
constructed AST is wrong.
(#22205) Select manifest ordering for ordering test

This test was missed when the manifest ordering was changed to being a
setting. The test, of course, fails without having the manifest ordering
being selected.
(#22205) Reinstate relationship_graph as a factory method

The Puppet::Catalog#relationship_graph method used to be a factory for
the Puppet::Graph::RelationshipGraph. That was removed when the
prioritizer was added in an attempt to remove some of the
responsibilities of catalog. Inside puppet, all of the consumers were
updated. Unfortunately many tests of types rely on the old behavior in
order to test eval_generate, which may be implemented using
introspection of the relationship graph. This reverts back to the old
behavior of the relationship_graph being a factory method and instead
memoizes the prioritizer so that the same instance can be used for the
relationship_graph as well as the transaction.
Merge pull request #1843 from zaphod42/issue/master/22205-revert-relationship_graph-to-being-factory-method

(#22205) Reinstate relationship_graph as a factory method
(Maint) Add docs for #relationship_graph
Merge pull request #1766 from zaphod42/issue/master/21409-create_resources-differs-from-real-resource

(#21409) Ensure that create_resources acts the same as a resource decl
Merge master onto stable to prepare for 3.3 release

Merge remote-tracking branch 'origin/master' into stable

* origin/master: (478 commits)
  (Maint) Add docs for #relationship_graph
  (#22205) Reinstate relationship_graph as a factory method
  (#22205) Select manifest ordering for ordering test
  (#22191) Rename cancelled to canceled
  (#22191) Always process internal catalogs
  (#22191) Mark ready, but unevaluated resources, as skipped
  (#22191) Add cancelled resource handler
  (#22205) Extract common Prioritizer code into a superclass
  (#22205) Chose a Prioritizer based on Puppet[:ordering]
  (#22205) Re-introduce old ordering as a Prioritizer
  (#22205) Provide setting to control manifest ordering
  (#22205) Add enum setting type
  (Maint) Restructure requires for settings
  (Maint) Removed commented out settings
  (#22205) Extract class for generating resource priorities
  (22021) Implement (un)install_options for OpenBSD package provider.
  (Maint) Move most graph related code to Puppet::Graph
  (#18508) Ensure that no two resources have the same priority
  (#18508) Handle duplicate generated resources correctly
  (#18508) Ensure eval_generated resources apply at the right time
  ...
(#22250) ensure a failed resource status always has an event

Typically, a Puppet::Resource::Status.failed is set to true
when an event is added whose status is 'failure' (this is done
in Puppet::Resource::Status.add_event).  However, there is also
a case where Puppet::Transaction::ResourceHarness.evaluate
directly sets the status failed field to true.

Generate an event for this latter case, so that report parsers
can rely on an event accompanying any failed resource status.
(packaging) Update PUPPETVERSION for 3.3.0-rc1
Merge branch 'stable'

* stable:
  (packaging) Update PUPPETVERSION for 3.3.0-rc1
(maint) Limit ignore to root doc/ directory

'doc' was ignoring other 'doc' dirs elsewhere in the tree such as
acceptance/test/docs.  This should ensure we only ignore the
<repo-root>/doc directory.
(#22250) refactor previous and add spec tests
Merge pull request #1845 from kylog/issue/22250-reports-inconsistent

(#22250) ensure a failed resource status always has an event