Issue #9 implemented automatic dependencies

Used the -MM flag of g++ to automatically generate dependencies
for compilation units.

Some rules were eliminated as unnecessary in this update.