(#18577) Extend Hiera to support Proper Yaml Syntax

This patch extends the yaml backend for hiera (and thus puppet ;)
such that key/values in this syntax;

  nginx::sendfile: on
  nginx::worker_connections: 10
  nginx::gzip: on
  nginx::tcp_nopush: on

Can now be specified in Yaml syntax, Eg;

  nginx:
    worker_connections: 10
    sendfile: on
    tcp_nopush: on
    keepalive_timeout: 0
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
Merge branch '1.x'
Add install.rb to hiera

Previously installing hiera from source was different from Facter and Puppet.
This commit aims to change that by adding an install.rb to hiera. It has many
of the same flags as the puppet and facter install.rb, notably lacking
deprecated and unused flags. This allows a user hiera to run `ruby install.rb`
inside of hiera and have the libs added to their sitelibdir, a default conf
file laid down, and the binary installed.
Merge branch '1.x'
Merge pull request #129 from haus/add_install_rb

Add install.rb to hiera
Remove prereq check from install.rb

The json backend is an optional component of hiera. Json is a dependency of our
packages but doesn't need to be there before install.rb can be run. This commit
removes the prereq list and checks from install.rb.
Require rubygems for install.rb on windows

Without requiring rubygems, ruby will fail to find the win32/dir on a Windows
install of hiera (at least on ruby 1.8). This commit adds the require on
rubygems to install.rb, only on Windows platforms.
Merge pull request #130 from haus/add_require_rubygems

Require rubygems for install.rb on windows
(maint) Fix gemspec version

Without this patch Hiera cannot easily be used from Git source to
satisfy the dependency other projects like Puppet have on Hiera.  This
is a problem because we need the means to integrate the Hiera master
branch with the Puppet master branch in our CI system.

This patch addresses the problem by adding the same public version API
that Puppet and Facter have.  In addition, a gemspec file is added to
the root of the repository in order to make a plain git checkout usable
with Bundler.
Merge branch '1.x'

* 1.x:
  (maint) Fix gemspec version
(#20519) Fix formatting typo in debug output
Merge pull request #133 from ahpook/20519_printf_typo

(#20519) Fix formatting typo in debug output
Fix for issue#20645
Merge branch '1.x'
spec fix for for issue#20645
Merge pull request #134 from santana/master

Fix for issue 20645
Added the pretty print module so that output of hiera on the command line was easier to read
Merge pull request #135 from nhuisman/pretty_print

Use Pretty Print when outputting non-strings