Revert^14 "Thread suspension cleanup and deadlock fix"

This reverts commit 2a52e8a50c3bc9011713a085f058130bb13fd6a6.

PS1 is identical to aosp/2710354.

PS2 fixes a serious bug in the ThreadExitFlag list handling code.
  This didn't show up in presubmit because the list rarely contains
  more than a single element. Added an explicit gtest, and a bunch
  of DCHECKS around this.

PS3 Rebase and fix oat version. Once more.

PS4 Weaken CheckEmptyCheckpointFromWeakRefAccess check to allow
  weak reference access in a checkpoint.
  This happens via DumpLavaStack -> ... -> MonitorObjectsStackVisitor
  -> ... -> FindResolvedMethod -> ... -> IsDexFileRegistered. I haven't
  yet been able to convince myself that this is inherently broken,
  though it is trickier than I would like.

PS5 Move cp_placeholder_mutex_ declaration higher in thread.h.

Test: m test-art-host-gtest
Change-Id: I66342ef1de27bfa0272702b5e1d3063ef8da7394
32 files changed