devsegment: fix segmentcreate function signature
secstore: allow multiple server addresses in $secstore and multiple -s arguments

on bootstrap, we might have to deal with multiple auth server ip
addresses (ipv4 and ipv6), so deal with it.
factotum: accept multiple bootstrap auth servers in /net/ndb and -a arguments

we might have to deal with multiple bootstrap auth server
ip addresses (ipv4 and ipv6) in the future, so deal with them.
bootrc: do not pass authserver with -a flag to factotum, handle multiple secstore addresses

factotum is started in bootrc before the network is setup
(as we need it to negotiate wpa key for wifi). once, the network
is setup, the bootstrap authservers are passed in /net/ndb,
which factotum reads when doing bootstrap authdial. it does
this only when no authserver was specified earlier! but we
want net.rc to select the proper bootstrap authserver...

the $secstore variable takes precedence over $auth. as
there is no connection server yet, we have to select the set
of servers here and pass them to secstore with -s flag.
note that this will work if multiple addresses where
specified.
bootrc: handle multiple fs and auth addresses in netboot, always set auth= in /net/ndb
ndb: add dnsgetip program to resolve A and AAAA records during bootstrapping
dnsgetip: filter negative answers, remove -f flag, use dnsgetip logfile
ndb(8): document ndb/dnsgetip
bootrc: preserve #ec/fs (thanks _sl)
bootrc: add ndb/dnsgetip resolver to bootfs so domain names can be used for fs=, auth= and secstore= (thanks mischief)
bootfs: remove disk/kfs fileserver, nobody uses it
merge
bootrc: use "address" instead "ip" in wording netboot questions, as we domain names are allowed now.
bootrc: keep original address when ndb/dnsgetip fails and let dial complain
plan9.ini(8): remove factotumopts= (not implemented), add secstore=, clarify domain name use for fs= and auth=
plan9.ini(8): document bcm and virtio ethernet and hda and ac97 audio.
plan9.ini(8): etheryuk
plan9.ini(8): fix typo (thanks ftrvxmtrx)
kbmap: fix sprint() buffer overflow (thanks silasm)

A buffer can be overflowed in the init function of kbmap.c by using a filename of more than 112 characters.

sample output:
% cd /sys/lib/kbmap
% touch aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
% kbmap
kbmap 1974: suicide: sys: trap: fault write addr=0xa6a96510 pc=0x000011df
offending code is most likely the call to sprint in the init function of /sys/src/cmd/kbmap.c,
which in this case writes /sys/lib/kbmap/$file to a 128-bit buffer.
I'm willing to submit a patch for this myself along with a few minor improvements/fixes to kbmap
if I can figure out the nuances of doing so.

--silasm
acme: fix buffer overrun in xfidutfread() and xfidruneread(), cleanup

the utf8 buffers b1 where allocated from fbufalloc() which gives
us BUFSIZE bytes, but Xfid->count can be bigger than that. so just
emalloc() the requested number of bytes.

when converting from Runes to utf-8, we have to account for the
terminating '\0' byte snprint() places, so fix the maxrune number
calculation instead of using BUFSIZE+1 as buffer size.