Prevent UAF issues caused by static destructors

Agents calling exit(3) would cause static destructors to run on
several openjdkjvmti data-structures. This caused problems as other
threads could still be running and might hit UAF issues, causing
errors. We fix this by making sure that no important jvmti
data-structures are statically allocated. Since these data-structures
must be live for the whole program runtime this is not a big issue.

Bug: 69591477
Test: ./test.py --host -j50
Test: while ./test/run-test --host 1944; do; done
Test: ./art/tools/run-libjdwp-tests.sh --mode=host --test \
          org.apache.harmony.jpda.tests.jdwp.VirtualMachine.ExitTest.testExit001
Change-Id: I25b01fc129d46c5f15bce1b9ec7952d29088a5a2
12 files changed