Fix NOP-In/NOP-Out payload handling.  Previous way didn't work at all; fortunately
nothing seems to actually use this feature, but it's required by standard.

Approved by:	re (glebius)
Sponsored by:	FreeBSD Foundation
Close the race on path ID allocation in xpt_bus_register() if two buses are
registered simultaneously. Due to topology unlock between the ID allocation
and the bus registration there is a chance that two buses may get the
same IDs. That is supposed reason of lock assertion panic in CAM during
initial bus scanning after new iscsid initiates two sessions same time.

Reported by:	trasz
Approved by:	re (glebus, marius)
MFC after:	2 weeks
Fix off-by-one.

Coverity CID:	1011375
Approved by:	re (glebius)
Sponsored by:	FreeBSD Foundation
Fix incorrect use of sizeof().

Coverity CID:	1011303
Approved by:	re (glebius)
Sponsored by:	FreeBSD Foundation
Fix two off-by-ones.

Coverity CID:	1087999, 1011375
Approved by:	re (glebius)
Sponsored by:	FreeBSD Foundation