bwn: Import from FreeBSD

* bwn depends on siba_bwn, importing that code as well

* Including the bwn.4 manpage, but not siba.4

* In FreeBSD the siba driver lives in a separate directory. Since we only
  need the siba_bwn part we just put it below sys/dev/netif/bwn.
bwn: Porting from FreeBSD

* Adding bwn and siba_bwn to sys/conf/files and to the X86_64_GENERIC kernel
  configuration.

* Replacing BWN_LOCK, BWN_UNLOCK, BWN_ASSERT_SERIALIZED with
  wlan_global_serializer.

* Increasing some alignments from 4K to 8K and some from 1 byte to 4 bytes.

* Changing slot counts for RX and TX from 64 to 256, which is the same size
  as used by b43 in Linux.

* Allow overriding the BWN_TXRING_SLOTS and BWN_RXRING_SLOTS values in the
  kernel configuration.

* Some style fixes. Removing unneeded NULL checks.

* Replace a DELAY(50000) with tsleep.

* Can't use kmalloc to allocate memory for dma like in FreeBSD and Linux.

* A few typo and grammar fixes in the bwn.4 manpage.
bwn: fixing performance problems and an RX buffer overflow problem

* Commenting a bwn_shm_write_2 call that destroys performance especially
  when sending.  This call is also commented in Linux's b43 driver.

* Handling Overflows of the RX buffer in bwn by just dropping all entries.
  With 256 slots in the RX buffer this overflow will almost never happen in
  practice.
run.4: D1 is an mdoc macro, so we have to escape it :)