Update Makefile

The original Makefile duplicated a lot of information. This one not only reduces duplication but also automatically picks up new .cpp files.