(#17434) Add YARD for #parse_string
(#17434) Clarify tests for #parse_string
(#17434) Add tests to exclude unwanted lookups

The changes made in GH-29 (commit 3ec4165) caused a sequence of unwanted
lookups to occur. It was originally conceived as a way to get rid of
deprecation warnings that puppet was issuing (incorrectly issuing) when
looking up facts without preceeding the lookup with ::. The change,
however, also had the effect that if a variable contained :: and did not
exist, then hiera would end up in an infinite loop trying to resolve the
interpolation.

This adds tests to assert that we don't try to do that kind of "smart"
lookup by trying to clarify that the lookup is simply on exactly what is
contained inside the %{} inside the string.
(#17434) Stronger assertion about how keys are looked up

It turns out that the current behavior is that even whitespace is
significant when looking up a value for string interpolation. This adds
a test for that case.
(Maint) Describe desired behavior in backend specs

The names used for the previous tests of the Backend code were very
tightly tied to the implementation and did very little to describe the
desired behavior. This tries to reword them in a manner that makes the
behavior that is expected more clear. It also removes the constant use
of the word "should" in favor of more specific and active verbs.
(#17434) Simplify string interpolation

The previous implementation for string interpolation was hard to follow
and see what was being done. This replaces it with an implementation
that relies entirely on gsub.
(#17434) Simplify logic around looking up values

This inverts the if statement used for looking in the scope or the
extra_data. At the same time it uncovered a bug, and fixes it, whereby
if the extra_data contained boolean false, it would be ignored. The new
behavior is that a false value in the extra_data is used rather than
changed to nil.