Merge pull request #3888 from RosettaCommons/roccomoretti/interactive_address_mutex_contention2
Foldit: Address some mutex contention issues.
There are a number of locations where threaded contention for the GUI mutex was delaying threads for significant fraction of the runtime(*). A number of these locations are somewhat trivial to reorganize such that there isn't a need to hold the GUI mutex, or to hold it for shorter periods of time.
Many of these are switching to atomic data, rather than mutex-protected data. There's some larger scale reorganizations, as well as splitting up the GameApplicationTests and GameApplicationMacroTests unit tests, to better isolate some of the finicky/unstable tests.