Similar to InputStreamHolder, this adds OutputStreamHolder to FetchStreamReader:
1. OutputStreamHolder is not part of the cycle collection but is freed when FetchStreamReader goes away
2. nsIAsyncOutputStream holds OutputStreamHolder which only weakly hold FetchStreamReader, allowing FetchStreamReader to be cycle collected.
3. GlobalTeardownObserver is not added here as we only accept JS ReadableStream here instead of nsIInputStream, which is part of the cycle collection unlike nsIInputStream.
Differential Revision: https://phabricator.services.mozilla.com/D233553