Added explicit rule classes
first stage of rule conversion: create rule objects for polyrules
added RuleHelper to contain rule actions not expressible as lambda functions
minor bugfix to PolyRule class
changed simp0 rule to use PolyRule class
changed simp2 and simp5 to use PolyRule class
modified simp1 to use EqnRule
added EqnRule objects for simp3 and simp4
added EqnRule instances for simp7, simp8, and simp9
added EqnRule for mult2
changed simp3 to use EqnRule
changed simp4 rule to use EqnRule
changed remaining rules to use EqnRule or PolyRule objects
removed unneeded static methods from Solver
added extra field to Rule classes
completely switched to rule objects and updated tests
changed code to consider all applicable rules, and break ties via some function
Added way to enumerate all solutions
saved progress. Rules need debugging
fixed SIMP3 bug