(#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.