Refactor annotation code for obsolete methods.

Reading annotations on obsolete ArtMethod* objects would cause
problems due to reading from the wrong dex file. We refactored that
code so now it always uses the correct dex file when reading
annotations. This was rarely a problem since obsolete ArtMethods are
only ever exposed to the runtime itself which rarely reads
annotations.

We also add a test for redefining Object.class. This is one of the
small number of classes where the runtime will read it's annotations
off of obsolete methods.

Bug: 31455788
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: I5f1c58464b89a7a9198a7b26b015b102a7dc9c2f
14 files changed