lzc_ioctl now checks zc.zc_ioc_error.

Since Darwin ioctl can return 0 despite a ZFS error, we need to
check the zc.zc_ioc_error. If zc.zc_ioc_error is 0, we check for
the standard Darwin ioctl error behavior, where -1 is returned by
ioctl, and errno is set to indicate the error.

zfs_ioctl already has been checking zc.zc_ioc_error, so this just
fixes a regression introduced by the transition to lzc_ioctl.

Thanks to lundman for diagnosing the problem and pointing to
zfs_ioctl for the cure.