secstore: fix gfile/pfile/rfile array sizes

need to have one more entry for terminating nil
nusb/kb: fix trackpoint on thinkpad usb keyboard

The trackpoint has no subclass, but it's still a pointer device.
Also close the device while we are here.
secstore: fix wrong "readnvram %r" error status
kernel: add secstore and wpa to bootfs
wpa support for tcp boot, remove duplicate secstore code from factotum

to run aux/wpa at boot, we need factotum to be running. tho
factotum was started only after the network was configured.

what we do now is start factotum early, not fetching keys
from secstore. once network is available and the auth server
is known, we fetch keys from secstore using auth/secstore in
bootrc.

to pass the authserver for p9 authentication to factotum, we
write it in /net/ndb and the special _authdial() in factotum
will picks it up.

as we are using auth/secstore binary in any case, we remove
the duplicated secstore code from factotum and make it just
exec auth/secstore to fetch the keys on startup (unless -n
or -S is specified).
nusb: dont include <bio.h>, we'r not using it (thanks erik)
wifi: first attempt on negotiating data rates

driver sets wifi->rates array to tell wifi layer what
rates it supports. when we receive beacon, we determine
the minimum and maximum data rates and set wn->minrate
and wn->maxrate to point to the entries in wifi->rates.

it is the responsibility of the driver to use this
information on transmit.
etheriwl: set msb for all rates

the 802.11 spec only specifies the msb of the rate for
Beacon, Probe Response, Association Response, Reassociation Response,
Mesh Peering Open, and Mesh Peering Confirm management frames
...
The MSB of each Supported Rate octet in other
management frame types is ignored by receiving STAs.

this should make no difference but on some netgear ap's not
setting this bit seems to ignore these data rates.
wifi: set ether->mbps to highest supported rate of the associated ap
nusb/ether: add RNDIS support (tested on Nexus 5)