Improve layout and add more Makefile amazingness

Future modules may want multiple sources linked together,
so we need directories for easier management.

Changes to the Makefile: now each directory defines the name of
a module.  In each directory, all *.c files are compiled together
to make one top level [dirname].so.