Use GC exclusion for NotifyStartupCompleted

Prevent deadlocks that can occur in very rare cases where checkpoints
block on a thread decoding weak globals, resulting in a deadlock.

This is done by moving the startup completed event on a separate
thread and using GC exclusion.

Test: test-art-host
Bug: 138852758

Change-Id: I314c61aff5be0d5829f7ad5fac0659e99dec1d90
8 files changed