Merge pull request #6532 from RosettaCommons/roccomoretti/queue_play_events
[Foldit] Convert play event logging to use a deferred queue
Previously, the play event logging uploaded to the server directly each time it was called. This PR changes it such that the data gets uploaded to the server at the same time the game scores and the cached solutions get uploaded, hopefully reducing lag due to server communication. (The deferred uploads happen in a separate thread.)
I've also changed things around such that the server mutex isn't held throughout the upload process, which should hopefully reduce client freezing due to mutex contention. (e.g. if the main thread wants to post a queued server upload while the periodic upload is happening.)