Weak normalization

This introduces the concept of weak normalization (reducing the magnitude to 1, but not fully normalizing), and then using this for testing equality between field elements (which can be done by subtracting weakly normalized elements + comparing to zero after fully normalizing, instead of comparing after two full normalizes). This gives a 2% signing speedup, and a 0.4% speedup for validation.

Built on top of #123.