kernel/ath: Grab the WLAN serializer around ieee80211_ifdetach().

Reported-by: Imre Vadasz <imre@vdsz.com>
kernel/802_11: Release the WLAN serializer around if_detach().

This should fix all crashes we are seeing upon kldunload of WLAN
drivers.

In-discussion-with-and-tested-by: ivadasz, jh32, sephe
kernel/802_11: Fix a panic in RUN -> AUTH -> RUN FSM transition.

When ratectl_node_init() is called and ni_rctls is already allocated,
use that pointer.

This is FreeBSD's r207323.

Pointed-out-by: Imre Vadasz <imre@vdsz.com>
Tested-by:      Markus Pfeiffer <markus.pfeiffer@morphism.de>
Importing the siba driver and the if_bwn driver from FreeBSD
Adding Makefiles and adding if_bwn and siba to sys/conf/files
Porting siba from FreeBSD.
Ported if_bwn. Serializers need revising. Untested/WIP.
Avoid freeing a NULL pointer when detaching if_bwn.
Increasing some alignments from 4K to 8K. Changing slot counts for RX and TX.

Allows overriding the BWN_TXRING_SLOTS and BWN_RXRING_SLOTS values in the
kernel configuration.
Cleaning up and improving locking in if_bwn.

* Removing all BWN_LOCK, BWN_UNLOCK and BWN_ASSERT_LOCKED that were left.
  Substituting some of the BWN_ASSERT_LOCKED with wlan_assert_serialized().

* Adding wlan_serialize_exit()/wlan_serialize_enter() brackets around
  taskqueue_drain and taskqueue_free calls.
Style fixes. Removing some unneeded NULL checks.
Linking the if_bwn module into the build.
Removing 2 unused lines.
Replacing a 50ms DELAY with tsleep
Commenting a bwn_shm_write_2 call in if_bwn that destroys performance.
Handling Overflows of the RX buffer in if_bwn.
Improve handling of DMA memory in if_bwn.
Fixing and cleaning up serializers in if_bwn.
Man page updates for if_bwn. Added svn tags from FreeBSD.
Fixing a typo. Adding siba and bwn to the X86_64_GENERIC configuration.