Ensure non-standard returns release monitors

We were incorrectly failing to unlock monitors that were acquired by a
frame when the frame is popped off the stack in a non-standard manner.
This can lead to monitors having an incorrect count and being
impossible for any other thread to lock.

Test: ./test.py --host
Bug: 133901254
Change-Id: I2efbb8854dd5530c66d780f6853ec6e05a69c83b
6 files changed