close duplicated zfs handly

The problem described in commit 8ce0af0 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>