Add separate icall for System.Threading.VolatileRead (object&).

Previously, the icall that was used for the IntPtr overload was
used for this overload as well. Having a separate icall is less
error-prone for future modification as the two types are no longer
conflated.
Add more missing atomic functions for MinGW.