Client completed

Client comments completed.
Common function for displaying exception errors

Client code should be able to be used for all server implementations:
threads, select, epoll
Cleaned up comments

Standardized function comments
Server comments, logging, mutual exclusion

- Comments cleaned up for server, function comments completed.
- 2 additional mutexes added, one for file IO, one for the output
dictionary
- Moved control loop to be after the server listening socket is
created, incase it fails, control loop should never be started.
- One small issue with the client IDs: could create duplicates
- Added exception handling where needed, mostly just catching Exception
- Server loop handles Ctrl C signals gracefully now