Add assertion to catch duplicated notes.

Sponsored by:	The FreeBSD Foundation
Mark iscontrol(8) and iscsi_initiator(4) obsolete.

Differential Revision:	https://reviews.freebsd.org/D931
Reviewed by:	wblock@
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Mark CTL frontend's CAM driver as CAM_PERIPH_DRV_EARLY.

Target mode operation does not depend on the initiator mode scan process.
This change allows the target driver to attach earlier and receive some
async events (like AC_CONTRACT) that could be lost otherwise.

MFC after:	1 week
Update isp_tgt_map and send new arrival notification if target that departed
earlier has returned.  Previously that code worked only once, confusing CTL.

MFC after:	1 month
Fix r272936 build with old GCC.

MFC after:	1 week
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/userlandenhanced
Filter out duplicate AC_PATH_REGISTERED async events.

Queued async events handling in CAM opened race, that may lead to duplicate
AC_PATH_REGISTERED events delivery during boot.  That was not happening
before r272935 because the driver was initialized later.  After that change
it started create duplicate ports in CTL.
Shorten frontend name.
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/userlandenhanced
Fix KASSERT typo.
Fix a couple bugs. Make the mprotect exec hardening per-jail.
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/master
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Update ip_divert.ko to depend on version 3 of ipfw.
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/userlandenhanced
MFi386 r272761.

Noted by:	Holger Hans Peter Freyther <holger at freyther.de>
Sponsored by:	The FreeBSD Foundation
MFC after:	10 days
Fix nits in previous commit:
1.  Remove initializer for badstack_sbuf_size; it gets set unconditionally.
2.  Remove meaningless comment.
3.  Group witness_count and its sysctl together.
4.  Fix spacing in for statements (space after for and within condition).
5.  Change *all* M_NOWAIT usages in witness_initialize() to M_WAITOK; not
    just those that were newly introduced -- the allocation is assumed to
    succeed for all allocations.
6.  Avoid using uint8_t as the base type in sizeof() expressions; Use the
    variable name (w_rmatrix) as much as possible.

Pointed out by: jhb@ (thanks!)
Give physical and virtual ports numbers some more meaning.