Refactor RemoveNativeDebugInfoForJit.

This is partial revert of CL/1099280 (Remove global maps).

It somewhat resurrects the lazy method removal.

The original goal was to only remove methods from the GC,
and do all of them in bulk for simplicity and efficiency.

However, this is proving infeasible since we have several
corner cases which remove methods outside the GC code path.

The behaviour for the GC code path is preserved by this CL.
Instead of passing method array, the methods are individually
marked for removal and then repacking is immediately forced.
The only difference is that coroner cases are done lazily.

Test: ./art/test.py -b -r --host --jit --64
Change-Id: I42729545d6b51df788d92f9cf149a6e065b90c68
5 files changed