Incomplete first pass at restructuring the files and decoupling the logic

So the big thing here is the ClientManager which is essentially the equivalent of the ServerThreadHandler if you were to decouple some of the logic.  Basically the ClientManager just handles the server's references to the clients and the open sockets over which it will communicate.  The ClientManager then relies upon a NetworkLayer for each connection to actually message actions over the wire.
So I didn't even get as far as the ExecutorService portion.  I ended up spending a good deal of time tonight white boarding and trying to figure out a good architecture for this.