(HI-115) Add failing test for repeated lookups

PR #152 broke a common use case:

    interpolate %{this} and %{this} again

Since each interpolation scans the entire input string and shares the same
recursion guard, this causes an InterpolationLoop error to be raised.
(HI-115) Process interpolation sites in isolation

Previously, `Hiera::Interpolate.interpolate` re-scanned the entire input string
on each recursive call. This meant all interpolations shared the same recursive
guard and repeated interpolations of the same key were falsely identified as
recursion.

This commit refactors the `Hiera::Interpolate.interpolate` method so that it
performs interpolation inside a blocked gsub. This means interpolation logic is
executed once in isolation per interpolation site in the input string.
Remove substiution in interpolation functions

Now that interpolation functions are processing individual interpolations
instead of the entire input string there is no longer a need for them to
perform string substitution.
Merge pull request #181 from Sharpie/HI-115-repeated-lookups

(HI-115) Fix regression in repeated lookups