Fix #19792 - cryptic error when missing deep_merge gem

The configuration loader will try to pre-emptively load 'deep_merge' if
the 'deep' or 'deeper' options were given to :merge_behavior.

If the load fails, it will warn the user and revert back to 'native'.
Merge pull request #124 from justenwalker/bug-19792

Fix #19792 - cryptic error when missing deep_merge gem
(packaging) Update lib/hiera.rb for 1.2.0-rc3
(packaging) Update lib/hiera.rb for 1.2.0
(#20137) Test for Puppet robustly

The test for puppet being present didn't seem to work when used in Rack
setups. I don't know why it didn't work there, however. This changes to
using "defined?" which is used in other parts of the puppet codebase and
appears to work in the way expected in Rack.
Merge remote-tracking branch 'zaphod/issue/1.x/not-detecting-puppet-correctly-in-rack' into 1.x
(packaging) Update lib/hiera.rb for 1.2.1-rc1
Interpolate hash keys like already done for strings.

The needs for this appeared while using create_resources(), which
expects a hash, and takes hash keys as resources titles.
When using hiera, hash keys where not interpolated before this
patch.
Merge branch 'brunoleon-fix/master/interpolate_vars_in_hash_keys'

* brunoleon-fix/master/interpolate_vars_in_hash_keys:
  Interpolate hash keys like already done for strings.

closes #126
Initial addition of Makefile