Dynamic scheduler

Name kind of suggests it all.  This needs to be approved alongside with my recent Forge pull request or else everything will break.  For now just default to a static scheduler in C++, dynamic scheduling is available.
this symOrConst pattern is becoming increasingly common; they should be replaced with a nicely typed sum of products form