add support to the server to do basic authentication of http requests
simplify protocol. switch on actual types of messages instead of a string. properly display error message when quitting, being moving to a model where the client pings the server. wire up version number to the terminal UI. fail to connect clients with a different protocol version
client initiates heartbeats and detects when connections are stale