MFC r261795:
Issue doorbell twice before finally freeing the DMA descriptors. This
should fix DMA descriptor caching issues seen with the EHCI controller
found in Google Chromebook C720 during removal and insertion of USB
devices.
MFC r261541, r261543 and r261544:
Import USB RNDIS driver to FreeBSD from OpenBSD.
Useful for so-called USB tethering.
- Imported code from OpenBSD
- Adapted code to FreeBSD
- Removed some unused functions
- Fixed some buffer encoding and decoding issues
- Optimised data transport path a bit, by sending multiple packets at a time
- Increased receive buffer to 16K
MFC r261981:
Add new PCI ID for hardware which needs port routing for USB 3.0.

PR:		usb/186811
MFC r261827:
- Remove not needed definitions from driver.
- Get USB input report length from HID descriptor.
- Use 1 finger TAP for devices which has no integrated button.
- Move data buffer to softc instead of allocating it.
MFC r261872:
Fix minor logical error in the XHCI driver. Set correct SETUP packet
direction value.
MFC: r261549

Add a manpage for the urndis driver.

Obtained from:	OpenBSD
MFC: r261529

Try to make the style used here consistent.
MFC: r261531

- Implement the RX EARLYOFF and RXDV GATED bits as done by RealTek's Linux
  driver as of version 8.037.00 for RTL8168{E-VL,EP,F,G,GU} and RTL8411B.
  This makes reception of packets work with the RTL8168G (HW rev. 0x4c000000)
  in my Shuttle DS47.
- Consistently use RL_MSI_MESSAGES.
In joint forces with:	yongari
[automated] Merge in upstream-github/stable/9