(PUP-3512) Use new Profiler API

This PR modifies PuppetDB to use the new Puppet Profiler API instead of the old one, in preparation for the removal of the old API.
I think in most cases when we have a dynamic piece to the id, like `request.key`, we probably want it to be the last thing in the array?

Also not 100% sure we care about the node as part of the metrics for encoding the facts, so maybe this should just be `[:puppetdb, :facts, :encode]`.