[bt][gap] Remove event_listeners when control channels are closed

When a client of the Control fidl interface closes, we now remove
the registered event_listener from bt-gap so that further messages
are not sent to the already-closed channel. This removes a large
amount of log spam, especially when using bt-cli.

test: run bt-cli, exit with ctrl-c, do this a few times and check
in fx-log that when you start-discovery, you don't see pages and
pages of failures sending to a closed channel.

NET-1795 #done

Change-Id: I70752528035f2a8812d567e5dcf7ebb2f937888d
2 files changed