close duplicated zfs handly

The design to perform unconditional free in zfs_iter_dependents instead of
conditional free in iter_dependents_cb made in favor of siplicity:
 * do allocation and free in the same scope
 * take into account error handling execution pathes inside iter_dependents_cb

This reverts commit 8ce0af07bb3227c152d32e74683d1fdc1869246c
Illumos #4061

Signed-off-by: Andrey Vesnovaty <andrey.vesnovaty@gmail.com>