Fix 'hierarchy' typos
Fill in missing documentation of Module.Root()
Add an initial test suite for module.py
Add more tests showing attr > submod > subdir preference
Allow sub-modules to NOT be auto-loaded on attribute lookup

There may be use cases, where you want to restrict lazy module loading
to ONLY apply to files named by the 'src' argument to Module.Root(),
i.e. given foo.bar.baz (and foo/__init__.py does not already contain a
'bar' attribute), you do NOT want foo/bar.py to be imported (rather you
want foo/bar/__init__.py to be imported, or - failing that - the
attribute lookup should fail altogether).

By giving load_submod == False to Module.Root(), we suppress the lookup
of sub-modules within the current Module instance's directory, and rely
instead on loading modules from sub-directories only.
WIP: TODO