Purge #[!resolve_unexported] from the compiler

This rewrites the test harness generation to create modules that reexport things as needed to make sure all tests are visible.
Sure, I'm actually more interested in avoiding reexporting public modules. If I have a public module chain `foo::bar::baz` with a private module `tests` at the end, it would ideally access any tests methods via `foo::bar::baz::__test_reexports::tests` instead of via `__test_reexports::foo::__test_reexports::bar::__test_reexports::baz::__test__reexports::tests`.