Make a custom async I/O server.

Since the first recv is the only really blocking operation, bluelet is arguably an overkill.