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