Decided to over abstract again, was a lot better this time around. Client and Server inherits from the base Connection class. To get the data that is passed around, an external program can simply read from the message queue. As well, they could theoretically override constantly_listen, but there is little point unless they are doing something rather funky
Added flags so messages and shutdown can be monitored
Fixed bug in PlayerHandler where you could not use constructs interchangebly with "PlayerHandler" and "PlayerHandler.players"