Moved the receiverProxy in the WebsocketFrontEnd into a proper class

Tidied up all the messages the SocketServer uses to interact with application code and put them in the SocketServer companion object
Added support and tests for a configurable auto-ping duration, so the server can send keep alive ping frames without the application's help