(#21198) Allow data bindings w/ hiera to get special vars

Hiera functions get several extra variables that are often used during
classification. The hiera data bindings didn't provide these same
variables and so transitioning from functions to data bindings was
impossible at times. This changes data bindings to pass the whole scope
through (the only way to produce the calling_class and module) and then
wraps it in the Hiera::Scope object to make the variables available.

This replaces an acceptance test with an integration test that checks the
same functionality, but without needing to run an entire machine to check
it.