Implemented synchronous gameplay, re-worked asynchronous gameplay, and appropriately handled ending of a game when there are no tiles in deck