[pair-disconnects] a Connection-pair echo server, with segfaults.

typing-for-war> PWD=~/Desktop/typing-for-war/ PORT=5002 go run web.go 
listening...
2013/06/21 10:24:59 http: panic serving 192.168.0.195:50144: runtime error: invalid memory address or nil pointer dereference
/usr/local/Cellar/go/1.0.3/src/pkg/net/http/server.go:589 (0x43fec)
	_func_004: buf.Write(debug.Stack())
/usr/local/Cellar/go/1.0.3/src/pkg/runtime/proc.c:1443 (0x12572)
	panic: reflect·call(d->fn, d->args, d->siz);
/usr/local/Cellar/go/1.0.3/src/pkg/runtime/runtime.c:128 (0x1303e)
	panicstring: runtime·panic(err);
/usr/local/Cellar/go/1.0.3/src/pkg/runtime/thread_darwin.c:418 (0x1618d)
	sigpanic: runtime·panicstring("invalid memory address or nil pointer dereference");
/Users/tsnow/Desktop/typing-for-war/web.go:23 (0x201c)
	(*GameList).Connect: if this.waiting == nil {
/Users/tsnow/Desktop/typing-for-war/web.go:171 (0x3941)
	_func_005: game :=	 games.Connect(sock)
/Users/tsnow/dev/prod/goroot/src/code.google.com/p/go.net/websocket/server.go:98 (0x51639)
	google.com/p/go.net/websocket.Server.serveWebSocket: s.Handler(conn)
/Users/tsnow/dev/prod/goroot/src/code.google.com/p/go.net/websocket/server.go:121 (0x5179e)
	google.com/p/go.net/websocket.Handler.ServeHTTP: s.serveWebSocket(w, req)
/usr/local/Cellar/go/1.0.3/src/pkg/net/http/server.go:941 (0x38939)
	(*ServeMux).ServeHTTP: mux.handler(r).ServeHTTP(w, r)
/usr/local/Cellar/go/1.0.3/src/pkg/net/http/server.go:669 (0x378f8)
	(*conn).serve: handler.ServeHTTP(w, w.req)
/usr/local/Cellar/go/1.0.3/src/pkg/runtime/proc.c:271 (0x10678)
	goexit: runtime·goexit(void)
[websocket echo] a multi-user broadcast echo service.