fix(esm-lib): mark entry deps exports as used to fix shared chunk splitting
Root cause: `export * from './a'` creates a lazy dependency (set_lazy)
when the target module is side-effect-free. The lazy connection's
activity depends on per-runtime export usage — if entry2 doesn't use
export `a`, the lib→a connection is inactive for entry2's runtime.
This causes `a.js` to only appear in entry1's chunk, failing the
minChunks:2 threshold for SplitChunksPlugin extraction.
Fix: in finish_modules, also mark the direct dependencies of entry
modules as "used in unknown way" (all runtimes). This keeps re-export
connections active across all runtimes so modules like a.js/b.js
appear in all entry chunks and get correctly extracted to the shared
chunk by SplitChunksPlugin.
This replaces the previous pull_module_into_non_entry_chunks approach
which moved modules between chunks post-split (treating the symptom
rather than the root cause).
revert: keep NormalInitFragment in !safe_to_optimize path to preserve import order
Revert the external_module.rs change that replaced NormalInitFragment with
register_namespace_import in the UsedNames + !safe_to_optimize path. The
NormalInitFragment carries pre_order_index for deterministic import ordering,
which is important for the standard ConcatenatedModule path where ESM import
evaluation order matters for side-effectful externals.
The render.rs dedup logic in the ESM library plugin is sufficient to handle
the duplicate identifier case on its own.