Commit Briefs
9pserve: fix races causing assert(c->nmsg == 0) to fail.
1. Could happen that connoutthread sends c->outq a nil just before the regular input handler sends c->outq a real message. When the connoutthread gets the nil it will free c->outq, leaving the real message unprocessed. 2. Could happen that the outputthread writes a message body to the remote 9P server and then a response comes in and then the connection gets torn down, all before the outputthread manages to call msgput(m). Thanks to David Swasey for identifying this scenario. Also change yield() loop into explicit communication. Also remove dead code involving hungup queues.
bug fixes:
list message 1. give correct contents for raw, rawheader, rawbody. provide filename and charset in mime attachments. only rename mailboxes named mbox* not mbox*.