Basic EchoServer and EchoClient and unit tests. Unit tests can be run without server running.

One of the current tests is failing, and probably isn't quite what we need. Not 100% sure what all the failure modes are that we need to care about. One limitation with the current implementation is that we're probably only supporting short messages. Otherwise, I think we've hit the basics and the bonus. 
Looks like you might have a redundant "close" here - you're closing the socket up above, before breaking out of the while loop.