fix nested dynamic imports (#4349)
### Description
In the case when nesting `import()` where the second `import()`
references an already available module, it tries to access an
non-existing chunk loader module.
After this change it will generate `Promise.resolve().then(() =>
__turbopack_import__("...")` instead.
A little bit of refactoring was needed to gain access to the
AvailabilityInfo in code generation.
fix WEB-789 ([link](https://linear.app/vercel/issue/WEB-789))