close duplicated zfs handly

The problem described in commit 8ce0af07bb3227c152d32e74683d1fdc1869246c Illumos

This commit handles both happy & error paths which effectively reverts
Illumos #4061.

The design to perform unconditional free in zfs_iter_dependents instead of
conditional free in iter_dependents_cb made in favor of simplicity:
 * do allocation and free in the same scope
 * take into account error handling execution paths inside
 * iter_dependents_cb

Signed-off-by: Andrey Vesnovaty <andrey.vesnovaty@gmail.com>