Attempt to parse json hash or array when called with hiera()

Attempt to parse a string as json when called by hiera() to
improve hiera-etcd compatibility with yaml backend. Fall back
to native string if the string does not contain json.

Use case:

It should be possible to use both etcd and yaml backends with
a given puppet repo and the hiera() function to return a complex
data structure.

* hiera() returns first match and can be an array, hash, or string
* hiera_array() does a concat and may not be desired
* hiera_hash() does a deep merge and may not be desired