This fixes this two issues:
- Emit the events origin-removed, origin-added when required.
- Remove call immediately when disconnected and emit events:
By using `g_idle_add ()` we can't be sure when the call is actually
removed and could stay potentionaly for evere, as long the main loop is
busy. This can lead to unexpected behavior. If the calls shouldn't be
freed then it's required to increase the ref count. This is similar how
the `remove` event works in a `GtkContainer`.