The current Makefile could use some improvement

It currently always rebuilds everything, even if nothing's changed. I also didn't like that you specify what to build by listing .o files instead of the actual source files.

I've modified it to only rebuild things that need to be rebuilt, and to automatically generate dependencies while compiling. I also modified it so that the source files to build are listed instead of the .o files.