Module building

This isn't a complete change, because while modules can be built, final executables can't be linked correctly yet.  But, its a definite improvement.
Merge branch 'feature/module-compilation'