Fix resource stream for collectible assemblies (dotnet/coreclr#22925)
* Fix resource stream for collectible assemblies
The GetManifestResourceStream was returning a stream that didn't keep
the underlying assembly alive. For collectible assemblies, that means
that an assembly could be collected and the stream still kept,
potentially reading garbage.
The fix is to create a new stream type that stores a reference to the
underlying assembly, thus ensuring the proper lifetime management.
* Make the new stream class sealed
Commit migrated from https://github.com/dotnet/coreclr/commit/
452c40d2338bcf3f9298d316b49fbd1389a70cd5