Creates a nested hash, depth levels deep. The final hash will
receive a default value of value or, if value is
not given but a block is given, the result of the key yielded to that
block, or, otherwise, the hash's original default value, typically
nil.

NOTE: If you set the default value for one of the nested hashes explicitly,
all of the effects described here disappear for that hash because that also
means that the default proc will be cleared.