(split) Add run(4), a driver for Ralink RT2700U/RT2800U/RT3000U USB 802.11agn devices.

This driver was written for OpenBSD by Damien Bergamini and ported over by
Akinori Furukoshi.
Merge branch 'pre' of github.com:PseudoCylon/run-4 into wlan-tmp

Conflicts:
	if_run.c
	if_runreg.h
	if_runvar.h
(split) Release the firmware after loading to the device.
(split) Use device_printf rather than printf + device_get_nameunit.
(split) Add device ID.

PR:		usb/142427
(split) Attempt to recover on a TX error rather than stopping all transfers.

Submitted by:	Hans Petter Selesky
(split) Add the Netgear WPN111
(split) - Integrate latest driver code from OpenBSD
- Drain our tasks from the ieee80211 taskqueue
- Add more IDs

Submitted by:	Akinori Furukoshi
(split) net80211 rate control framework (net80211 ratectl).

This framework allows drivers to abstract the rate control algorithm and
just feed the framework with the usable parameters. The rate control
framework will now deal with passing the parameters to the selected
algorithm. Right now we have AMRR (the default) and RSSADAPT but there's
no way to select one with ifconfig, yet.
The objective is to have more rate control algorithms in the net80211
stack so all drivers[0] can use it. Ideally, we'll have the well-known
sample rate control algorithm in the net80211 at some point so all
drivers can use it (not just ath).

[0] all drivers that do rate control in software, that is.

Reviewed by:	bschmidt, thompsa, weyongo
MFC after:	1 months
(split) Remove debugging code that snuck in.
(split) Remove previously added if 0's.

MFC after:	1 month
(split) Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had
the illusion of a tunable setting but was always turned on regardless.

MFC after:	1 week
(split) Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after:	1 month
(split) Add dummy function for ic_update_mcast (a la if_urtw) to avoid console
spam.
(split) Sync run(4) driver from author's site.

Submitted by:	Akinori Furukoshi
Obtained from:	git://gitorious.org/run/run.git
(split) - Because hostapd calls iv_key_set() before if_init(), make sure key_set
  callback function will be executed, and that the key won't be deleted during
  the init process.
- txmic and rxmic are written into the chip the same place regardless of
  opmode.
- Make the hardware generate 802.11 sequence numbers.

Submitted by:	Akinori Furukoshi
Obtained from:	git://gitorious.org/run/run.git
(split) Fix typos that broke duration calculations on protection frames.  A similar
fix was done for ral(4) long ago and it must be copy-and-paste bugs.

Found by:	clang
(split) Add new device id.

PR:		usb/147190
(split) Update for style(9).

Submitted by:	Akinori Furukoshi (author)
(split) Use more compact deviceid table.

Submitted by:	Akinori Furukoshi