Restore vlan_ioctl overwritten by ether_ifdetach in vlan_unconfig

This fixes PR 49112.
Call if_input of vlan interface itself, not parent's one

And also we need to drop M_PROMISC before calling if_input;
it was originally at just before bridge_input in ether_input.

Then we can bridge vlan interfaces again.
- use a private buffer to resolve symlinks, the previous code was broken
- factored out symlink handling
- handle relative symlinks now
- handle device paths that do not contain a '/'.
Initialize timespec "end" for the benefit of some gcc versions getting
"may be used uninitialized" warnings wrong.
Mark /etc/rc.d/rtsold and /rescue/rtsol as obsolete
use the passed parameter instead of PATH_MAX. Change signedness
of nlen.
KNF. No binary change.
Remove rtsol.
Remove more rtsol references.
use dma channel mask from firmware
not sure how this compiles for me, but remove extra * on prop_dictionary_t decl
trust the firmware and use whatever it advertises between DMA0-DMA11
Print the cpu in the kernhist record.
Trailing whitespace.
Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@
Add BCM2835_PERIPHERALS_TO_BUS() macro to convert ARM physical address to
VideoCore bus address, needed when programing the DMA engine with hardware
FIFO register addresses.
Add a bunch of register offsets to read-only registers.
Move DMA interrupt establishement to time of engine allocation so as to
allow the IPL to be specified by the driver using the DMA engine.
Allow sdhc(4) to use a non-integrated DMA engine.
Avoid NULL deref when sdhc(4) attaches via config_interrupts().