Improve the Makefile.

It now only rebuilds based on the files that actually changed (instead
of rebuilding everything), automatically computes dependencies while
compiling, and lists the source files to build, not the object files.
Merge pull request #20 from cbane/build-fixes

Add dependency checking to makefile