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
  ...
(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.
Serialize timestamp in Puppet::Node::Fact using iso8601
(maint) Split to_pson_data_hash into generic to_data_hash component

Split out the parts generating a hash of the object itself from adding
document_type metadata.

Also split out for all resources that generated the hash directly inside
the to_pson method.
Add msgpack serialization format

Use a feature to check for existence of msgpack library and add the
serialization format if it is supported.
Add to_msgpack on format_support and require where needed

Add to_msgpack back to serializable objects. They all have the same
implementation. The issue is nested objects; if an object with no msgpack
implementation is contained in the "data hash" then msgpack will try to call
to_msgpack on it. The alternative is to make sure there are only nested
hashes, but this is not backwards compatible with the pson formats.

Also strips out the internal fact _timestamp from the node object as
that is of type Time and cannot be serialized.
Move Confine out of Provider