(#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
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 `^{foo}` to differentiate hiera lookups from scope lookups,
`%{foo}`.

ips.yaml

    potto01_ip: 10.10.1.52

pott01.yaml

    firewall_rules:
      - "0.0.0.0:22:^{pott01_ip}"

When evaluating the string, `"0.0.0.0:22:^{pott01_ip}"` hiera would
lookup the value for pott01_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.
(packaging) Use the packaging loader for tasks

The packaging repo now uses an explicit loader which handles loading the
various rake tasks in packaging. This commit updates the hiera Rakefile to use
the loader instead of a blind glob of the ext/packaging/tasks directory.  We
move this load into the rescue LoadError block because the packaging repo won't
always be there.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(packaging) Remove Ubuntu Oneiric from build targets

Oneiric is EOL, and we are no longer building for it. This commit removes the
Oneiric target from the build list for hiera.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove unused patchsys-quilt.mk from rules

We don't use this in hiera, and it's causing unusual errors in our latest and
greatest jenkins setup. This commit removes it.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Change hiera and scope lookup syntax to use a single sigil for interpolation

Use '%' for both types of interpolation. Instead of multiple sigils use
a method syntax to differentiate interpolation lookups:

  - Scope lookup: `%{scope("potto01_ip")}`
  - Hiera lookup: `%{hiera("potto01_ip")}`
Adding vCloud node configs
Setup script to install Git on vCloud hosts
(RE-47) update hiera.spec and build_defaults to include F19
Merge pull request #140 from sschneid/vcloud_acceptance

vCloud acceptance
Merge pull request #141 from melissaanne/maint/1.x/f19_updates

(RE-47) update hiera.spec and build_defaults to include F19
Merge branch 'stable'
(Bug #22166) rm hardcoded hostname dependencies

Prior to this, we had hardcoded burji.puppetlabs.com into
build_defaults.yaml. Since this isn't particularly elegant, this commit
takes that out, and instead uses cnames that point to the right place,
be it burji, or something newer (like burji2)
Merge pull request #143 from melissaanne/maint/stable/rm-hardcoded-dependencies

(Bug #22166) rm hardcoded hostname dependencies
(Bug #22166) rm hardcoded hostname dependencies

Prior to this, we had hardcoded burji.puppetlabs.com into
build_defaults.yaml. Since this isn't particularly elegant, this commit
takes that out, and instead uses cnames that point to the right place,
be it burji, or something newer (like burji2)
Merge branch 'stable'

* stable:
  (Bug #22166) rm hardcoded hostname dependencies
(Bug #22239) rm EOL f17

We're removing support for Fedora 17, because it's officially gone End
of Life.
(#17094) Ensure that a leading $ resolves

The issue was the we could end up in a recursive, infinite loop if the
variable was preceeded by a `$`. This was caused by an old parsing
mechanism that dumbly stripped off characters and sometimes made no
progress. The new system doesn't do that, but this ensures that it
doesn't.
Merge pull request #146 from zaphod42/issue/master/17094-infinite-recursion-on-lookup

(#17094) Ensure that a leading $ resolves
(Maint) Add heira to Gemfile so that you can run it

Without hiera itself being referenced in the Gemfile you can't run
"bundle exec hiera" to try out the command line app. This adds hiera as
a referenced gem to enable that (this is also done in puppet and facter,
so this should bring hiera in line with those).