Notify client observers directly if we're already on the RunQueue thread.

This avoids a needless wait in the run queue for most notifications. Only
notifications that result directly from something one of the communicator
threads did will need to do a loop de loop.

This should close the hole where ClientObserver could be told that the
ClientObject was available *after* some events have come in on the ClientObject
(which they then miss). Now when the subscription response comes in for the
ClientObject, observers are notified immediately, and will be wired up and
ready for any messages that are themselves already in the queue ready to be
dispatched.