Allow for return of complex values across hiera

This patch provides the ability to use calls to hiera() in various YAML
files to allow for the re-use of Arrays and Hashes across the hiera
space.

For example:

== foo.yaml ==
---
foo:
  - 'Item One'
  - 'Item Two'

== bar.yaml ==
---
bar: %{hiera('foo')}

A call to 'hiera bar' would return: ['Item One','Item Two']

This closes HI-183 <https://tickets.puppetlabs.com/browse/HI-183>