Track built targets, and don't rebuild targets that were just built during this build.

This replaces "gen" functionality by building src targets first.  This
also prevents .install() from building targets multiple times.
In older versions of python, map FileNotFound to OSError
Add .editorconfig
Overlapping inputs should now favor later inputs.

Previously newly added files wouldn't work, and even existing
overlapped files didn't seem to work consistently either.
Ignore .coverage file.