bridge: Simpler handling of closing channels during open

When opening a new channel, we need to wait until after the
mainloop has run before emitting signals, so that signal handlers
can be connected.

Previously each channel would do this in its own way. This puts
that in the base class so it's consistent.

Closes #1421