Fix a bunch of warnings in the runtime code.
[bcl] Remove all uses of Thread.Volatile{Read,Write}.

These methods are broken, misleading, and generally harmful. Always prefer the
`Volatile` class over these to make intent clear and to get sensible semantics.

http://blog.alexrp.com/2014/03/30/dot-net-atomics-and-memory-model-semantics/