Add system to ignore evaluation for blocks where input has not changed,
scope has not changed
Fix bug in scope propagation.  If a new call to scheduleFirstGenAncestor
was called while evaluation queue was running, the scope would not be
reset when the newly added scheduled blocks were reached.  This ensures
that when these blocks are reached, scope is properly reset.
Bug fixes