(PUP-914) Use resource ref when writing dot files

Use the `ref` attribute of a resource instead of `to_s`.

Internally, Puppet uses the `ref` attribute to identify and locate resources
within a catalog. This patch makes use of `ref` to identify nodes in graphviz
output as some Types, notably Whit, override `to_s` and either destroy or
obscure the identity of resource nodes.
(PUP-3462) Add the key 'calling_class_path' which is 'calling_class' with '::' by '/'

This enables to have the class hiera yaml files in directories and enables to
have class based hiera data on windows which does not allow ":" in path names.
(maint) Remove dead code in lib/puppet/reference
(PUP-3247) Remove trigger_string method

Previously, our vendored task scheduler code defined a method that if
called would never work. This is because it would try to return the
`trigger` local variable, but it was never defined, and so would call
the `#trigger` method instead, and that requires one argument for the
index.

This commit just removes the method since it's never used in puppet.
(PUP-3277) Ensure that user and group are set in func4x test

Without these settings, the puppet apply will reset Puppet directories
and files as root.  This doesn't impact a foss test run, but a pe test
run using the puppetserver will fail to start up master threads unless
there is an intervening agent or apply run with a puppet.conf that has
user/group with service account settings.  The puppetserver master
threads were failing because of permissions on the ca.pem.
Merge pull request #3245 from kylog/maint/remove-dead-code-in-reference

(maint) Remove dead code in lib/puppet/reference
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-3277) Ensure that user and group are set in func4x test
Merge pull request #3223 from Sharpie/pup-914-use-ref-in-graph

(PUP-914) Use resource ref when writing dot files
Merge pull request #3246 from joshcooper/ticket/master/PUP-3247-remove-trigger-string

(PUP-3247) Remove trigger_string method
Merge pull request #3175 from vinzent/calling_class_path

(PUP-3462) Hiera scope: add the key 'calling_class_path'
(PUP-3277) Set selinux context for new acceptance test environments

The acceptance environment_utils currently backup existing $confdir
files and copy in test environment files created in /tmp.  These test
files may have a different selinux context than $confdir, which can
result in agent -t runs coming back with selinux context changes and an
unexpected exit code of 2. Rather than just assume that all agent runs
may have resource changes, the helper instead sets $confdir's context
for the test files once they have been copied in (if selinux is
enabled).
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-3277) Set selinux context for new acceptance test environments
(maint) Allow domain to specified when re-running pe acceptance
(PUP-3277) Allow resource changes in ticket 5477 test

Reports ending up in the /var/log/pe-puppet-dashboard/failed_reports
directory during pe tests runs had an seluser context that differed from
that which the puppet_enterprise module would manage in subsequent agent
runs. This was interaction between the
acceptance/tests/allow_arbitrary_node_name_fact_for_agent.rb from
which the reports were being generated, and this ticket_5477 test which
was exiting with a 2 because of the selinux context changes in the
failed_reports directory. I'm not positive why these two particular
tests happen to have this interaction. The allow_arbitrary_node_name
test is the first to run after installation. The ticket_5477 test is not
the first test to run with an agent -t after this, but maybe the first
that ran without accepting an exit of 2. I don't see anything
wrong with the report files themselves being adjusted by the pe modules,
so I'm relaxing the acceptable_exit_codes in ticket_5477, because I have
run out of other ideas.