(#19955) Give better error msg when Hiera databindings fail.

If a problem occurs while hiera databindings tries to look something
up (bad hiera.yaml, bad data, or indeed bad implementaton), the raised
error ended up as a Puppet::ParseError blaming a manifest with a cryptic
error message.

This changes this to throw a specific error if DataBinding raises an
exception when its find method is called.

It now points to which databinding terminus is in use, what the
exception class and original message was. It then fails the compilation
using a Puppet::Error.

A test is added to ensure a message is produced.
(#19955) Move error handling closer to hiera

The error handling shouldn't be done inside Puppet::Resource, since most
of that handling was very specific to YAML, which is not the concern of
that code. This moves the error handling closer to hiera and removes
other errors that are not required to handle hiera errors. This should
deal with most errors for JSON, YAML, and general hiera problems.
(#19955) Collapse Hiera and DataBindings

The only instance of Hiera for a terminus is in the DataBindings. To
simplify the system and make it so that the Hiera code can reasonably be
expected to raise DataBindings errors, this collapses the classes
together.
(maint) Prefer pson over json for logstash_event

We can't always rely on json being present, since that dependency may be
satisfied by rubygems and this code isn't responsible for loading
rubygems. However we can rely on pson always being available, which
satisfies this same need.  This commits switches the logstash_event log
destination from trying to require and use json to simply use pson.
Merge pull request #1963 from adrienthebo/maint/logstash_event-json_require

(maint) Prefer json over pson for logstash_event
Merge pull request #1964 from zaphod42/hlindberg-issues/issue-19955-data-binding-rescue-and-log

(#19955) Give better error msg when Hiera databindings fail.
Merge branch 'master' of https://github.com/puppetlabs/puppet