This is iSCSI sharing for ZoL (shareiscsi).
* 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).
* Add support for options to 'shareiscsi'.
  + name/iqn	Full iSCSI Qualified Name (IQN), including identifier
		Default: Generated by iscsi_generate_target()
  + lun		LUN (0-16384)
		Default: 0
  + type	Share mode (fileio, blockio, nullio, disk, tape)
		Default: blockio
  + iomode	IO mode (wb, wt, ro)
		Default: wt
  + blocksize	Logical block size (512, 1024, 2048, 4096)
		Default: 4096
* Retreive the volume block size and use that (if it's
  usable) when seting the options.
  + Default to 4096 instead of 512 if it isn't.
* Default to 'blockio' as type instead of 'fileio'.
* If shareiscsi=on, then force setting a name value.
  This so that the IQN doesn't change 'next month' (when
  it is regenerated again). Works as long as a 'off'
  and then a 'on' is not done - every time set to 'on'
  the value is regenerated. This patch stops that.
Add support for SCST iSCSI implementation.