improve debugging: tell why a task needs to be rebuild
fix bug: don't add a task twice to the runnable_tasks list if it has been started already
fixes
fix transient dependencies

libA/source
libA/target

libB/source (everything depends on libA/target, and checkout libB)

libB/source is checked out by git, thus timestamp will always be
"outdated" prevent rebuilds by using max timestamp of prerquisites if
there is no action

TODO: fix/check for makefile by adding a "touch" action for example

I should really consider adding test suite now ..