Pause GC during deoptimization work

When we are deoptimizing code we should stop the gc to prevent
deadlocks. This change also reorganizes gc pause code a bit to make
this simpler to implement.

Test: ./test.py --host
Bug: 79175795
Change-Id: I00000ab608231a7fd1627d69d58216b9115a47ca
4 files changed