Fix handling of the `volatile.` prefix instruction.

* Respect the `volatile.` prefix on all instructions specified in
  Ecma 335, Partition III, 2.6.
* Emit release barriers _before_ the instructions they affect.
* Skip certain optimizations when the `volatile.` prefix is used,
  since we can't easily emit barriers correctly in those
  optimization paths.
* Use `ins_flag` to check for `MONO_INST_VOLATILE` as it doesn't
  depend on an instruction having been emitted. This would kind of
  not work when we need to emit barriers before other instructions.
* Set `ins_flag` to zero in all cases where it's consumed.