Cleanup build env

This PR cleans up the build environment by grouping the objects/sources in modules.

Note that this PR conflicts with all PRs introducing files.
LOOOL.