if: Add subqueue watchdog helper functions for driver use

Ease driver's multiple TX queue support
igb: Utilize subqueue watchdog functions

Prepare for the multiple TX queue support
igb: Setup subqueue CPUID before possible calling of igb_init
igb: Use ifsq_devstart_sched in watchdog and resume methods

So these two method won't consume too much time.

In watchdog method, schedule all subqueues instead of the subqueue
causing watchdog timeout.
igb: Don't assume only one TX queue will be enabled.

Prepare multiple TX queue support.

- Add TX queue count when MSI-X is used
- Add currently used TX queue count

Number of TX queues are still limited to 1 as of this commit.
kernel/mfi: Sort commands by opcode.
Merge branch 'master' into gsocdrm_alter
kernel/agp: No need to include opt_bus.h here.
igb: Merge per-RX queue rx_wregs into single rx_wreg_nsegs node

There is no use case that it needs to be tuned on per-RX queue base.
igb: Make tx_intr_nsegs and tx_wreg_nsegs nodes aware of multiple TX queues
wlan: Remove unused ieee80211_drain_ifq
wlan: ifaltq is no longer ifqueue
igb: Define macros for wreg_nsegs, instead of using magic number
igb: Move IGB_FLAG_TSO_IPLEN0 into TX rings

Avoid extra access to softc and leave enough space for TX ring specific
flags.
igb: Add per-TX ring enable flag.

For TX rings' whose enable flag are not set, which could happen during
polling entering/exiting, its corresponding subqueue will be purged.
igb: Add IGB_TSS_DEBUG kernel option
igb: Add per-TX ring tx_pkt sysctl node, if IGB_TSS_DEBUG is enabled
if: Add function to set subqueue count
igb: Setup subqueue count properly
if: Add power of 2 mask based CPUID to subqueue mapping