Handle conflicting import of items declared in the same module

Fixes #19498
@nick29581 : I think now I understand your concern. The existing logic takes care of case like this.

```
mod A {

   use self::B::C::B;  //  error: import `B` conflicts with existing submodule

   mod B {   //  note: note conflicting module here
       mod C {
            mod B {}
       }
   }
}


fn main() {
}
```