(Maint) Make methods private in Transaction

Many methods in Transaction were public but should not reasonably be
considered public. This narrows Puppet::Transaction down to a
reasonable, and small, public interface.
(Maint) Simplify conditional in aliasing

Only Type and Parser::Resource respond to isomorphic, and they both implement
name and title so we can eliminate these unneeded checks.
(Maint) Fix some docs in Puppet::Type
(Maint) Parenthesize

Parens are nice :)
(Maint) Avoid creating unneeded Status objects in Transaction

When querying whether a resource was scheduled, we were unnecessarily creating
a Status for the resource even though it was unused.
(Maint) Delete transaction specs that were testing implementation and not behavior

Many of the specs had intimate knowledge of the implementation of the
transaction and made changing it difficult. They added little value
themselves, so just remove them.
(#18508) Test that the relationship graph gets built in order

The relationship graph needs to be built to preserve the order that
resources are in the catalog. This ensures that we do that.
(#18508) Promote working acceptance test for ordering
(#18508) Add acceptance test for ordering when using master and agent setup

We want to make sure nothing in the network layer changes things.
(#18508) Add failing test case for ordering issues
(Maint) Collapse classes for relationship graphs

Since the introduction of the Puppet::RelationshipGraph the
Puppet::Transaction::RelationshipGraphWrapper seemed a bit out of place.
This changes the interface for the #traverse method so that all of the
transaction specific and interacting portions are injected in, which
decouples the RelationshipGraphWrapper from the Transaction. Once that
was done, then it was clear that the two graph classes could be brought
together.

This provides a single class that represents the final relationship
graph and the semantics of traversal that that graph has.
(#18508) Ensure resource ordering in interesting cases

From the the accepted proposal for this functionality some of the
example cases have been captured as test cases.
(#18508) Fix order of apply for resources in containers

When the Whits are created for a container in the relationship graph, we
need to maintain the priority of the original container for both of the
Whits or else they will end up being pushed to a later point in evaluation.
(Maint) Move creation of relationship graphs to RelationshipGraph

Previously the catalog had all of the logic for how to put together the
relationship graph, but that code is better encapsulated in the
Puppet::RelationshipGraph class. This moves all of the logic to that
class.
(#18508) Fix acceptance test for manifest ordering

The test was missing the autosign argument and did not set up
permissions correctly.
Merge pull request #1832 from zaphod42/agent-ordering

(#18508) Apply resources in the order they are added to the catalog
(maint) Fix problem reading empty file with safe yaml

Safe yaml always chokes on an empty file with a TypeError
(nil cannot be converted to an integer).
(maint) Remove unused Hiera2::Backend class

This class is no longer used. It contained a very simple Hiera2 backend
loader that was replaced with an extension using the same loader as
for other extensions.
Merge pull request #1828 from Sharpie/21839-stringify-timestamp-fact-name

(#21839) Stringify the :_timestamp fact name
(#22128) Fixes rpm provider's nevra regex to work in yum prefetch

Work done for #19875 changed the rpm provider's regex for parsing
package information.  The yum package provider's prefetch method relied
on the earlier version of this regex and was broken by this change,
resulting in a failure to set latest_info when using yum and a series of
warning messages in the logs.

This change adjusts the rpm NEVRA_REGEX such that the added description
info is an optional capture.