Revert "Try -M flag (rather than -MM) for dependency generation."

This reverts commit b53083bcc3e0902a9b800cf639c3b793fbc94535.
Split out makefiles for clang and gcc.

Runs tests with gcc, clean up warnings + errors.