consolidate startup logic
B0rken: try separating things out into proc()s

This should be nonblocking. We can't spawn a server and have it sit
around and block the whole time then. How are we supposed to make it
wait for connections, and still keep track of all this state at once?
rm peer.rs; unused
single-object version: compiles, but blocks
re-add peer stuff