(#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.