dispose method
Disposes the ILifecycle implementation, releasing any resources.
Implementation
@override
Future<void> dispose() async {
if (_disposed) return;
await destroyStream();
_disposed = true;
_created = false;
await _inboundSubscription?.cancel();
await _outgoingSubscription?.cancel();
unawaited(_incoming.close());
unawaited(_outgoing.close());
}