Add support for options to 'sharesmb'.
Fixes: #1182
+ Move nfs.c:foreach_nfs_shareopt() to libshare.c:foreach_shareopt()
  so that it can be (re)used in smb.c (and later iscsi.c).
+ Call net(8) with the guest_ok option.
+ Rewrite the sharesmb part of the zfs(8) manpage.
  + Add more examples
  + Inform about the (new) options to sharesmb.
+ Add STDERR_VERBOSE to libzfs_run_process() so that we
  can catch any errors from net(8).
+ Don't call smb_retrieve_shares() after enabling a share.
  No point, it's done when really needed anyway.
+ Support 'y', 'yes' and 'true' for guest_ok.
* If sharesmb=on, just exit cleanly directly at the top of
  get_smb_shareopts_cb().
* Remove param 2 and 3 from smb_enable_share_one(). That is
  availible in the first param - the impl_share struct.
* Extra debugging added in smb_enable_share_one() - print
  all our options just before we call net(8).
Add support for optional, extra script /sbin/zfs_share_smb
to run after shareing is done.
Make sure 'everyone' knows about changes to the sharetab.
+ Instead of opening a temporary sharetab and then renaming
  it, just open it with freopen() writeable and write the info.
  + If sharetab isn't opened, open it with fopen() instead of
    freopen() to avoid segfault if it doesn't exist.
Don't open sharetab in parse_sharetab() - it's already open!
+ Reuse the handle, fseek to beginning and read...
The option sharesmb should not be inherited by childs.
Samba is perfectly able to show child file systems...
Use dataset name in comment, not the smb share name.
Use REGISTRY SHARES instead of USER SHARES
+ These are a lot more configurable (more possibility to customize the share).
+ Remove the 'acl' option and replace it with 'writeable' instead.
+ On some machines, there is a "global" share. This isn't really a share,
  but the possibility to modify global options. So first get a line of
  _real_ shares using 'net conf listshares' and _then_ cyckle through
  them retrieving info with 'net conf showshare <share>'.
Speedups (less share retreivals) and make sure the 'net' command is executable.
* Since smb_shares is global, we only retreive shares if it's NULL
  in smb_retrieve_shares(). It should limit the number of times we
  fork() and read shares (which takes time).
* If the net command don't exist (is executable), don't even register
  the smb fstype in libshare_smb_init().
* access() fix - check if NET_CMD_PATH is _executable_ not just 'exists'.