Merge pull request #60 from kelseyhightower/1.0rc

Remove Puppet parser functions
Add mac packaging to hiera

This commit adds all of the bits necessary to build hiera mac packages. The
apple.rake task adds a package:apple task to the rake. It will create a package
with the lib and bin dirs, and docs from README, CHANGELOG, and COPYING.
Merge pull request #61 from haus/add_apple_packaging

Add apple packaging
Update mac packaging to dynamically generate preflight

To avoid collisions between preflight files and to avoid having to maintain
discrete lists of files, this commit moves the preflight file to an erb
template that is generated on the fly during package creation. It only adds
files to the removal list, as we have no guarantees on who owns what
directories.
Merge pull request #62 from kelseyhightower/1.0rc

(maint) Hiera should raise an error when config is missing
Merge pull request #63 from haus/add_apple_packaging

Add apple packaging
Move conf to ext, replace spec with erb

This consolidates packaging to the ext directory, which makes more sense than
the conf directory, as the conf does not contain configuration information, but
rather packaging information. It also moves the hiera.spec file to an erb
template, to aid in rake rpm building.
Add debian packaging for hiera

This adds debian packaging to the ext directory. It includes a cl.erb file
which is used to dynamically generate changelogs to aid in building debs via
rake task.
Add package task for deb, srpm

This adds a package rake task for hiera, which was borrowed and improved from
the puppet-dashboard package task. It builds debian packages using pdebuild and
cowbuilder, and uses rpmbuild with el5 friendly macros to build rpms.
Merge pull request #64 from haus/hiera_packaging_overhaul

Overhaul hiera packaging
Updating changelog for 1.0.0rc3
Add default config to hiera

When run on its own, hiera depends on having a config file present. It expects
/etc/hiera.yaml to exist. This commit adds a default config file to hiera, and
adds the config file to the packages for hiera.
Merge pull request #66 from haus/add_default_hiera_config

Add default config to hiera
(#12122) Correctly fall through backends during loop

When calling lookup for hash or array types Hiera would incorrectly return an
empty result from a backend that did not find a value instead of checking the
next backend. This happened because the empty hash and empty array were used
internally to represent a failed lookup. This changes it to use nil
everywhere. A distinct sentinel value would be ideal, but since Hiera
currently has no way to communicate to the outside world the difference
between lookup up nil and a failed lookup, it is sufficient to use nil internally.
(#12122) Merge arrays and hashes across backends

This implements merging for arrays and hashes across the returned values for
all backends, using the same logic as merging within a backend.
Merge pull request #68 from pcarlisle/ticket/master/12122-multiple-backends

Ticket/master/12122 multiple backends
(#14867) Add windows support

Without this patch Hiera does not work on Windows and fails with the
following error:

    Failed to start Hiera: RuntimeError: Config file /etc/hiera.yaml not
    found

Following the standard set by the Puppet installer, Hiera now uses the
following configuration and var directories on Windows:

    C:\ProgramData\PuppetLabs\hiera\etc
    C:\ProgramData\PuppetLabs\hiera\var

This patch introduces a new `Hiera::Util` module which utilizes the
`win32-dir` gem for locating the correct base directories on Windows.
Add specs for Hiera::Util
Use File::ALT_SEPARATOR to test platform
(maint) Fix failing Hiera::Util specs

This patch makes it easier to test the `Hiera::Util` module.