Update makefile

Pulled in updates from pinkySim's makefile. The biggest changes are:
* gcov rule can now be built at the same time as other rules.
* I make heavier use of macros for building and testing libraries.