(#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.
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
(Maint) Mark AdditionalResourceGenerator as private
(#22229) Ensure generated resources contained

The generated resources were left out in the cold with respect to
containers: they had none at all. This changes that to make sure that
the generated resources (via #generate and #eval_generate) have the same
container as the resource that generated them.
(#22229) Provide way of getting the container

The catalog tracks the relationship between the container and the
contained resource but did not provide any clear way to query for the
containment information. This adds a new method #container_of(resource)
that will return the container of the given resource, when one exists.
This removes some duplication around understanding what the container
is.
Merge pull request #1855 from zaphod42/issue/master/22229-ensure-generated-resources-contained

(#22229) Ensure generated resources contained
Merge branch 'master' into stable to prepare for 3.3.0.