Previously we were relying on the dynamic loader to take care of this
but it simple and correct for us to do it here instead.
Now we initialize bss segments as part of __wasm_init_memory at the
same time we initialize passive segments.
In addition, we extend the us of __wasm_init_memory outside of shared
memory situations. Specifically, it is now used to initialize bss
segments any time the memory is imported (but only when the bulk
memory features is available).
I think it would be clearer to place these comments before the arguments to the memory.init and memory.fill instructions rather than immediately before the instructions themselves. Also, it would be helpful if you could insert similar comments for the other parts of the code to split it into more easily digestible pieces.