Improve the makefile.

Compile every source file to an object file, then link it all together. This will make it compile only the files that have changed.
A side-effect that I'm hoping for is making it possible to compile flathead with compilers that have failed to do so due to linking errors.

This can be considered a work in progress, so feel free to reject this pull request.