Return nil instead of empty results to bail out in Puppet run

With this change, calls to `hiera` that don't return any data, e.g. when no RDS instances can be found, will cause the Puppet run to fail (400 error), allowing us to catch problems early.

Example of a failing Puppet run:

```
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Could not find data item rds jimdo:environment=geloet in any Hiera data file and no default supplied at 
/var/lib/puppet/environments/hiera_empty_result/modules/profile/manifests/common/puppet/master.pp:37 on node xxx.eu-west-1.aws.jimdo-server.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
```

Now one has to explicitly define a default value, e.g. [], to get an empty dataset.

Inspired by

* http://drewblessing.com/blog/-/blogs/puppet-hiera-implement-defined-resource-types-in-hiera
* http://docs.puppetlabs.com/hiera/1/custom_backends.html