Reference storing should now work on all architectures.
Created a storing write barrier function that stores the reference as volatile, for usage within ves_icall_System_Threading_Volatile_Write_T.
Interlocked exchanges on pointers to objects are now performed through the GC code, passing the function that does the exchange as an argument. This function, together with the write barrier will be called within locks on interruption.
The nostoring write barrier is no longer exposed to code outside the GC. Only storing write barriers should be used.