Fixes for various equation equivalence bugs.

There were two main sources of error, both related to the process of converting
an equation to a canonical expression. This process consists of three steps:

    1) Moving all terms to the left side.
    2) Multiplying through by all denominators.
    3) Factoring out all trivially common factors.

The first error was not accounting for floating point precision (or lack
thereof) in the preparation for step 2, which involves collecting over
individual terms. The second error was not being aggressive enough in
simplifying the input for step 3, which caused redundant factors.

Test Plan:
New test cases (both internally generated and from Elizabeth).

Auditors: eater