Compatibility with InstrumentationTestCase and esperanto

- Have `getName()` return the plain method name if `runTest` is
  currently executing. I thought this was unnecessary because `TestCase`
  accesses the name field directly, but `InstrumentationTestCase` goes
  through the getter.
- Intercept `ActivityTestCase`'s `scrubClass` to prevent it from
  scrubbing proxy class fields that were added by dexmaker.
- Avoid calling `findBurstableConstructor` until we know we're looking
  at a real test class (i.e., one whose `tests()` are `TestCase`s). With
  `GoogleInstrumentationTestRunner`, there's an extra suite in the tree
  of tests passed to `setTest`.
- Add a test which interacts with the target app.
The issue was, I think you expected `setTest` to be called once for each test class, which is the standard runner's behavior. But `GoogleInstrumentationTestRunner` will call `setTest` once with a giant `TestSuite`, containing another `TestSuite` for each test class. `findBurstableConstructor` was failing because the "root" `TestSuite` didn't correspond to an actual class.

So it seems we can't assume the "root" `TestSuite` is an actual test class, but it's probably safe to assume that if a `TestSuite`'s children are `TestCase`s, then that `TestSuite` corresponds to a class and the `TestCase`s correspond to methods.