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.
Here we've got the InputListener class which is a Thread dedicated exclusively to listening to the InputStream, generating actions and then delegating them to the proper ExecutorService to be handled.