Updated the echo server implementation to a more concurrent design
Updated the echo server implementation to a more concurrent design

The previous echo server used one goroutine per connection, reading a string then writing it back to the client. This implementation uses two channels, one to read strings from the client and the other to write them back. This isn't strictly necessary for an echo server, but it is setting the stage to move to a simple chat server. One current problem is that closing the connection is somewhat messy. Ideally any goroutine should be able to close a connection safely by calling a single method.

ecdavis/mmmmm