resolve: Refactor how the prelude is handled
This PR refactors how the prelude is handled in `resolve`.
Instead of importing names from the prelude into each module's `resolutions`, this PR adds a new field `prelude: RefCell<Option<Module>>` to `ModuleS` that is set during import resolution but used only when resolving in a lexical scope (i.e. the scope of an initial segment of a relative path).
r? @nikomatsakis