Refactored WebSocket so it's now handled by an actor

* Created a new WebSocketActor that will eventually be moved into Play itself
* Converted the WebSocket handling code in `Application.scala` to be an actor called `ClientConnection`
* Changed `PositionSubscriber` so that it sends position updates to its parent instead of to a callback, since the WebSocket connection is now an actor that can be the parent of the position subscriber
* Updated the tutorial to reflect to the changes