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.
This is the first real action I tried to move to a more OOP action heirarchy.  There are still a few things I need to figure out to get this to work.