Removed cloning of program statements
StrategyDef used to own a Strategy. Now it just borrows it. Had to reorder some things so that the preprocess::Def outlive the MutContext, but now context::Scope can hold preprocess::StrategyDef, which has borrows to the list of preprocess::Def.
Showing with 510 additions and 539 deletions