Refactor server code into an IServer.

IServer has two methods: HandleConn() and Listen(). Listen() will call
HandleConn() automatically, but calling HandleConn() by itself can be
used for testing.

This change resulted in a much simpler main Go file.

Remove the outdated Makefile.