Updates ifconfig

Uses bash's variable assignment, instead of guessing that clone gives us 0 and
1.
Fixes errbuf / errstack

To not need an extra errbuf per ERRSTACK call.
Cleans up ERRSTACK calls in 9ns syscalls

Was being overly safe with extra ERRSTACKS.
"Fixes" netif, running off the stack

Printing takes up a shitload of stack.  We hack netif to not call printf, to
avoid the problem for now.

Also, since printing is going to be a problem overall, we'll try to catch other
calls to print that cause print to run off the stack.
Spinlock debugging improvements

Can blacklist locks from collection, and the output also says where the lock
was last grabbed.

Also, catches any attempt to unlock a lock that is already unlocked.
spin_trylock()

When lock checking, it won't check for IRQs when trylocking.
"can"qlock and friends use trylock

canqlock is a terrible name.  Perhaps we should change it to something like
"kenqlock"...  For now, we'll leave it as is, for ease of diffing with the
original sources.
Fixes poperror with unionread()

Every waserror() needs some type of poperror() on every exit path.  This one
was a little nastier, since it used a a "not-waserror" style. (discard error).
Fixes bug with struct file initialization

Need to clear the plan9 flag.
Fixes up ping a bit

Better buffer management (not on the stack), and actually waiting.
WIP, debugging "bind ether" and ping

When doing a "bind ether" call, we end up reading off the same queue that ping
will pull from later.

Also, there might be an issue with qbread/readcond, regarding the handling of
Qmsg and block sizes.