Fighting the good fight.

Move libfmt, libutf into subdirectories of lib9.

Add poll-based socket i/o to libthread, so that we can
avoid using multiple procs when possible, thus removing
dependence on crappy pthreads implementations.

Convert samterm, acme to the single-proc libthread.

Bring libcomplete, acme up-to-date w.r.t. Plan 9 distribution.
diff --git a/src/lib9/await.c b/src/lib9/await.c
index 5f2d58b..a97c6d1 100644
--- a/src/lib9/await.c
+++ b/src/lib9/await.c
@@ -71,8 +71,8 @@
 	return 0;
 }
 
-int
-await(char *str, int n)
+static int
+_await(char *str, int n, int opt)
 {
 	int pid, status, cd;
 	struct rusage ru;
@@ -80,8 +80,8 @@
 	ulong u, s;
 
 	for(;;){
-		pid = wait3(&status, 0, &ru);
-		if(pid < 0)
+		pid = wait3(&status, opt, &ru);
+		if(pid <= 0)
 			return -1;
 		u = ru.ru_utime.tv_sec*1000+((ru.ru_utime.tv_usec+500)/1000);
 		s = ru.ru_stime.tv_sec*1000+((ru.ru_stime.tv_usec+500)/1000);
@@ -103,3 +103,16 @@
 		}
 	}
 }
+
+int
+await(char *str, int n)
+{
+	return _await(str, n, 0);
+}
+
+int
+awaitnohang(char *str, int n)
+{
+	return _await(str, n, WNOHANG);
+}
+