Fix leaking non-public 'use' statements with glob imports

Working on #4366
Fix leaking immediate children and types via glob imports

More work on #4366
Fix implicit leaks of imports throughout libraries

Also touch up use of 'pub' and move some tests around so the tested functions
don't have to be 'pub'

Closes #4366