mnttab and snapshot-mount enhancements

/etc/mtab automatically created by kernel
mnttab implementation is now closer to FreeBSD

Snapshot mount/unmount will check if already mounted/unmounted.
Snapshot mount/unmount will not give unsupported error.
Only call zfs_open once instead of twice for snapshot mounts.