Makes it possible to write a module as a python package.

This isn't finished & tested, but I wanted to get feedback from you.

The goals are to clean up module imports, avoid sys.path.insert by creating standard Python packages (directories containing an `__init__.py`), consolidate the files that make up a package into a single subdirectory, and prepare for the ability to load modules from other directories.

For example, all the files for the map module are now under modules/map instead of modules, modules/lib, data and modules/data.

In the future I'm planning on adding something like a --modulepath option that will let you load modules from other locations as well.