Rewrote the merge rules for producers and consumers to reduce activations
Fixed symbol-to-pointer-list to use instance-address
Fixed the get-Pointer message in wavefront-scheduling/common/Functions.clp

It should be get-pointer
Modified instance-address in ReindexBasicBlock to search all modules
Removed commented out rules in MergeRules.clp and optimized the inject rules

I modified the rules that inject consumers to just store the set of consumers
in the target instruction if the instruction didn't have any consumers already
defined.
Modified MemoryBarrierCreation.clp to speed up merger of ReadsFrom and WritesTo

I did this by modifying the merger process to only merge with a single
"control" fact that contained all of the merged elements. This merged message
was then used solely to great effect in the actual update process.
Rearranged several test conditions in LoopRegionMerging.clp

This should improve performance of equivalence and ownership claims due to the
fact that if the length checks fail then there is no need to evaluate the
subsetp commands which are far more expensive.
Reduced join network complexity in several rules in BlockDependencyCreation.clp

I realized that by targeting the basic block first in the call dependency
rules, I remove the need to verify the parent. This reduces the join network
complexity when matching is performed.
Reduced rule complexity in the Store and Load dependency rules

I realized that having the complex pattern match occur as the first rule will
reduce the match set because there are usually fewer basic blocks than
instructions. The complexity of the pattern match is offset by reducing the
number of elements in the associated match network.
Merge branch 'KnowledgeConversionRewrite' of https://github.com/DrItanium/durandal into KnowledgeConversionRewrite