Improved build.py

build.py now supports the —clean flag, and automatically checks source
file modification time against object file modification time when
compiling.