Gotomic hash and race conditions

I was thinking whether we could have some interface for this hash map, and then we can swap the implementations underneath.

And for testing, we can swap this out for one that will lock the whole map for every access. Usually if we do this, there might be false negatives for the race detector, but in this case, a lock-free map is supposed to work without the user having to lock explicitly, so I don’t think we need to worry about false negatives.

What do you all think? @core-devs