[Issue 27] Added armor to prevent RemoveContext from breaking EventDispatcher. Dispatches now check to see if any clients were removed during dispatch. The actual removal is deferred until the triggerClient phase of dispatch has concluded