There might be a potential race condition for the NFSv4 client
when a newly created file has another open done on it that
update the open mode. This patch moves the code that updates
the open mode up into the block where the mutex is held to
ensure this cannot happen. No bug caused by this potential
race has been observed, but this fix is a safety belt to ensure
it cannot happen.

MFC after:	2 weeks
Remove targ_enable/targ_disable/max_targets/max_target_id props/methods.
Separate concepts of frontend and port.

Before iSCSI implementation CTL had no knowledge about frontend drivers,
it had only frontends, which really were ports (alike to LUNs, if comparing
to backends.  But iSCSI added there ioctl() method, which does not belong
to frontend as a port, but to a frontend driver.
Create separate iSCSI port for every target (and potentially portal group).
Burry devid port method, which was a gross hack.

Instead allow ports to provide wanted target port and target IDs, and
LUNs provide wanted LUN IDs.  After that core Device ID VPD code only
had to link them together and add relative port and port group numbers.
Make REPORT TARGET PORT GROUPS to return something more sensible.

It requires more formalized LUN mapping to be exactly correct.
Add support for SCSI Ports VPD page.

Ports should also be filtered by LUN mapping.
Do not set port wwnn/wwpn directly, call ctl_port_set_wwns() to update
also target_devid/port_devid respectively.