Cache fixes

Fixes bugs, including fixes removed from NetworkAtomics (whoops). See individual commit messages.
Can you describe the race condition here? Is it that, in the absence of the chpl_task_yield(), the current task can monopolize the processor on locale 0, preventing the counts from being updated by the remote nodes? If so, then the chpl_task_yield() is indeed needed. But what about the atomic_fence()? That seems superfluous.