Implement 'Search test methods' in the Scala JUnit4 test runner.

Hook into the JUnit test configuration tab and implement the
Search Methods button functionality. We use aspects to intercept
the right call, and route it to our `ITestKind` implementation.

Fixed #1001474(cherry picked from commit c390ceef07c80019965b9ca5490ff53b0b8455fc)
Possible deadlock fix.

Two actors sending each-other synchronous messages
may deadlock. Break the cycle by making one of them
async.

The cycle is:

* a classPrepare event is fired, and listeners are
  notified
* a breakpoint is deleted, and the breakpoint support
  actor de-registers from load events.

I couldn't write a test to exercise this scenario,
but I think it's worth discussing and see if we can
ship it as is.

I moved most sync message sends to `send with timeout`.
Two sync message sends are still in the code base:
one for debugging and one for initialising the
breakpoint manager.

Fixed #1001512(cherry picked from commit 4fc53e3624fb168a37d11c7d657d0497913142e7)