Created client module to encapsulate the behaviour of a persistent listening connection to the LMS.

Client is a subclass of Server but some server methods were protected. I moved these up to the module level because I could not see why they needed to be protected.

I rewrote a lot of request() request_with_results() to allow these to be used to process the response from the LMS without having to send the request through them first.

I also added the ability to handle player updates which have a format not compatible with the code I forked.