(maint) Use same prioritizer throughout catalog

Under normal system runs, there wasn't any problem with the prioritizer being
used, since the Puppet::Resource::Catalog created it and passed to all of the
correct places. However, the testing methods in PuppetSpec::Compiler ended up
lying to the user about the prioritizer that could be used. The prioritizer
that was passed in was not the one actually used by the catalog for
constructing the relationship graph. This was because the
Puppet::Parser::Catalog used the one it had internally. The answer is to have
the Puppet::Parser::Catalog act as one possible factory of prioritizers, and
pass the prioritizer around as it needs it. This allows the tests to then
pass in the correct prioritizer and use it consistently throughout.