kernel: Move some header files to the drivers that only need them.
usb4bsd: Add detection for Etron EJ168 controller
usb4bsd: sync with FreeBSD svn r242385
usb4bsd: Fix scsi sense handling in umass
usb4bsd: Fix EHCI

This is a part of the sync with FreeBSD svn r242385
usb4bsd, pci: pull in bios takeover code from FreeBSD

Submitted-By: swildner
usb4bsd: Bring in fix for endpoint setup on Etron XHCI

This makes usb2 devices work on Etron xhci controllers. The Etron controller expects the maximum valid endpoint to be set in the slot context when an endpoint is configured.

This patch has gone into FreeBSD as well.

Conflicts:

	sys/bus/u4b/controller/xhci.c
usb4bsd: xhci cleanup

Conflicts:

	sys/bus/u4b/controller/xhci.c
	sys/bus/u4b/controller/xhci_pci.c
	sys/bus/u4b/controller/xhcireg.h
usb4bsd: fix breakage caused by earlier commit
usb4bsd: more cleanup of superflous debug messages

Conflicts:

	sys/bus/u4b/usb_hub.c
usb4bsd: Next attempt at fixing BIOS handoff for XHCI

If the BIOS does not give up the XHCI, then force the takeover.
Linux does it that way. It might not be clean or correct, but
it works for the time being.
Conflicts:

	sys/bus/pci/pci.c
	sys/bus/u4b/controller/xhci_pci.c
	sys/bus/u4b/controller/xhcireg.h
hammer2 - Change freemap segment delineation, other stuff

* Change the freemap delineation to encode the BREF type as
  well as the radix, in order to avoid mixing data and meta-data
  types together in the same device buffer.

* Reorganize the freemap to remove one indirection level.  Reserve
  two bits per block instead of one.  Change bitmap granularity to 16KB
  but leave allocation granularity at 1KB.

* Fix hammer2_devblksize() to match hammer2_devblkradix().

* Add hammer2_chain_iterate(), a chain iteration with a
  callback.

* Fix issue when hammer2_chain_get() is called with HAMMER2_LOOKUP_ALWAYS.

* Start working on proper statistics rollups during flush (not complete).
hammer2 - Adjustments for freemap changes

* Adjustments to hammer2 debug/show stuff for freemap changes.
hammer2 - temorarily track free space

* Temorarily track free space in the volume header.  This code will
  eventually inherit from the flush so it is properly synchronized to
  the transaction id.
hammer2 - temorarily track free space (2)

* Move the tracking to a better spot
hammer2 - temorarily track free space (3)

* Correct type-o, add missing assignment.