clean up missing_doc lint implementation

Since the privacy pass now returns information from `pub use`
statements, the missing_doc lint can be tidied up. This commit removes
the separate `MissingDocLintVisitor` pass, opting to do the work in the
same pass as the other lint checkers.

As a side-effect of these changes:
- Missing_doc no longer denies on invisible internal items. (Fixes #9777)
- Items defined at a private path but `pub use`d at a public path now
  require documentation.