(#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.
Merge pull request #1964 from zaphod42/hlindberg-issues/issue-19955-data-binding-rescue-and-log

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