This is a rough'n'ready experiment to see if it's feasible to detect shadowed modules on import. A shadowed module is one where a user has inadvertently named a module the same as a module on the standard search path (a common example in education is "turtle.py" and my own unfortunately named "picamera.py" :).
If this module is imported, it tweaks the standard import machinery to check for such shadowing
the first time a module is imported. If it finds any, it raises ShadowWarning
(which descends
from ImportWarning
) giving the path of the imported module, and the path of the first module