Convert the Protocol to an Actor
Convert the Protocol to an Actor

There's a number of practical benefits here, however it introduces a problem
into the connection handler - in that it waits for data from the network, ignoring
any messages from the protocol handler until it recieves data. This leads to
some weirdness in the interaction that looks like this to a client:

    $ telnet 127.0.0.1 12345
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    Hello
    World
    Hello

The solution is to have the connection handler poll the connection, allowing both
sides to progress.

sparkslabs/guild,sparkslabs/guild,sparkslabs/guild