hop_tasks: first param is now dynamic delayedRootList

Not a breaking change. Now accepts combination of future or func...

Also using Future.forEach instead of homegrown solution
bot: renamed requireArgumentMatches -> requireArgumentContainsPattern

a bit more generic

still in between releases, so not a breaking change
bot_git: added some arg validation to TreeEntry ctor

and a doc comment on mode
git crazy
crazy fun