Add reachabilityFence intrinsics

Add intrinsics that generate no code or do nothing for all architectures
and for the interpreter. The only impact is to keep the argument live at
all suspend points preceding the call. We ensure that the code is not
moved across other memory accesses by declaring it to have write side-effects.

Add a minimal test.

Modify 036-finalizer to use a reachabilityFence, hopefully making it
more robust to dead refererence elimination.

Bug: 72698200

Test: Build and boot AOSP.
      art/test.py --host -r -t 072-reachability-fence
      Look at generated code.

Change-Id: I0f298bf5cc375d8ebc19bb791cc05a8490d55430
Merged-In: I0f298bf5cc375d8ebc19bb791cc05a8490d55430
(cherry picked from AOSP commit c7b28de9f8bf407d91cff22de782d022492b45f7)
13 files changed