What's the important difference between calling `disconnect` in `factory.clientConnectionLost` and `protocol.connectionLost`?