The build script now updates caches in the most intelligent way possible.

You can rename, move, or delete a source file, or even change a source file
to a main program or vice-versa, and the build script tracks it perfectly,
exactly as if it were not caching at all.

This extra power actually shortened and simplified the build script.

I also simplified the clean script.