[mini] Simplify the way the JIT emits atomic opcodes.

* MONO_ARCH_HAVE_ATOMIC_* macros have been removed.
* Backends now report whether they support atomic opcodes via
  the mono_arch_opcode_supported () function.
* The default implementation of mono_arch_opcode_supported ()
  has been removed as almost all backends need to define one
  anyway.
* All old atomic_add_* opcodes have been removed. These were no
  longer being used but some backends still had code for them.
* atomic_add_new_* opcodes have been renamed to atomic_add_* as
  they are now the only atomic add opcodes.
* Itanium-specific atomic_add_imm_* opcodes have been moved to
  the __ia64__ section of mini-ops.h.
* Comments have been added to mini-ops.h explaining the precise
  semantics of the atomic opcodes.

The net result of this change is a simpler backend interface at
the cost of a slightly bigger binary.
[ppc] Clean up atomic opcodes.

* Support atomic_add_i4 on ppc32 in addition to ppc64.
* Make the atomic_add_* code more in line with the atomic_cas_* code.
[corlib] Re-enable TaskContinuationChainLeak test.

This is hopefully fixed after a57fb5b.