Refactored code and added bunch of coverage. The initial code changes were driven by the configuration-on-demand story.
Configuration-on-demand. While adding coverage I found that the default tasks were not correctly handled. In COD mode, the default project is now evaluated (just like to root project).
Removed some dead code.