Implemented filter_hash_of_hash

It can be used to filter hash of hashes retrieved from f.e. hiera.

Example:
filter_hash_of_hash({'a'=> {'c' => 2, 'd' => 1},'b'=> {'c'=> 2, 'd'=> 2}}, {'c' => 2})
Would result in: {'a'=> {'c' => 2, 'd' => 1},'b'=> {'c'=> 2, 'd'=> 2}}

filter_hash_of_hash({'a'=> {'c' => 2, 'd' => 1},'b'=> {'c'=> 2, 'd'=> 2}}, {'c' => 2, 'd' => 1})
Would result in: {'a'=> {'c' => 2, 'd' => 1}}

Change-Id: Iaa6670d8370464e1cf93a168b88f49f7bfac3184
New function: hash_fetch, multilevel fetch on a nested hash

This function is similar to a fetch function on a Hash object with the
exception that it works on a nested hash.

It tries to retrieve the value to the specified key. If the key does
not exist it will return the specified default value. If key is an
array of keys then this array is used to walk through a nested hash.

If it any time a key does not exist we return the default value.
If no default value is specified then undef is used as default.

Change-Id: If33fe5870e67ac6994211f29fe3e7a08c1cfa24f
hash_grep, retrieve key/values based on the child keys.

This function 'greps' in a hash of hashes.
The first argument is the hash of hashes that is needs to be 'grepped'
from.
The second argument is an element in the hash of hashes that is to be
grepped.

Change-Id: I03f48c2a33097fcc84ec4becf0d0d785c12c0d82
New function: hash_prefix, prefix keys of an hash

This function prefixes all keys in a hash of hashes with the provided
prefix.
The first argument is the hash of hashes that is needs to be modified
The second argument is a string that needs to be added to the keys.

Change-Id: I471ac330444cc3ff74cb3816da4dae99f8a936bb