Remove trailing whitespace in deep merge comment
Set backends to nil before loading a backend

This fixes the backend test if previous tests loaded a backend
Add support for a hiera variable syntax which interpolates data by
performing a hiera lookup:

[Redmine Ticket](https://projects.puppetlabs.com/issues/21367)

This commit adds support for interpolating hiera data in a similar fashion to
how scope interpolation functions in hiera. This commit adds the syntax,
`%{hiera('foo')}`, for hiera lookups and the syntax, `%{scope('foo')}`, for
scope lookups, in order to clearly differentiate the two types. It also retains
backward compatibility with the previous syntax for scope lookups, `%{foo}`.

Example:

  ips.yaml

      potto01_ip: 10.10.1.52

  potto01.yaml

      firewall_rules:
        - "0.0.0.0:22:%{hiera('potto01_ip')}"

When evaluating the string, `"0.0.0.0:22:%{hiera('potto01_ip')}"` hiera would
lookup the value for potto01_ip in hiera and interpolate that into the string,
the result being, `"0.0.0.0:22:10.10.1.52"`. This avoids having to repeatedly
perform this type of lookup logic in puppet and allows you to use your hiera
data from within hiera itself.
Collapse SCOPE_INTERPOLATION & HIERA_INTERPOLATION into a single regex,
use Matchdata objects rather than Perl style variables.
Add a Backend.clear! method to remove any initialized backends
Add Hiera::InterpolationLoop exception class, use rather than raising a generic exception
Change get_interpolation_method_and_key to private
Move interpolation to a separate class
Fix typo: intreprets => interprets
Merge pull request #152 from lollipopman/add_hiera_lookup_single_sigil

Add hiera lookup single sigil