Callback to allow arbitrary cleanup on dispose.
@override Future<Null> onDispose() async { _listeners.clear(); }