Refactor server

Server now accepts message storage, message handler, and client list as
constructor arguments.
New class ServerMessageHandler must bind to server. This new class
handles messages received by the server and appropriately changes
sever storage and client list.
ServerMessageHandler must receive a message parser as input.
Server is now run from run_server.py