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.
redundant comment; 
why is calculateRange still in the interface if it's been completely replaced?