Add MMD and .d files for better dep handling.  Fix test targets so they handle multiple test files.  Add self generating clean target.