Added some notes on ideas I have for scheduler improvement
Added consumers back to Instruction and removed DependencyChain comments
Added consumer updating back into Dependency.clp
Modified the stages and greatly simplified them
Rewrote the scheduler to use consumers

Each instruction is now aware if it has been scheduled or not. If the set of
producers is empty then the target instruction is a viable target for
scheduling. There is still the issue of removing duplicate references of a
target register in a given instruction but this is a start.

Anyway, each time an instruction is scheduled, the consumers of the target
are informed that the target instruction has been completed.
Added the scheduled slot to Instruction.clp
Modified the rules to heavily modify a fact for producer removal

This seems to improve performance quite a bit.
Added some comments to Schedule.clp
Fixed branch support by marking branches as consumers of target instructions
Replaced the modify-instance call with a send call

This shaved a significant amount of time off of the running time of the
scheduler on large cases.
Removed Collect.clp

This file isn't being used anymore now that the scheduler has been rewritten.
Deleted Group.clp

This file was never being used
Deleted the InstructionGroup and Scheduler classes
Deleted InstructionGroupID.clp

This file is no longer being used
Reordered the restart-scheduling's LHS

The rule will only fire if there is a Reset scheduling fact is found. This is
done to prevent reset-scheduling from being matched against partially.
Moved the profiled version of BlockLarge to BlockLargeProfile

BlockLarge now contains no profiling information
Removed the run command from BlockLarge.clp