Add efficient squaring to exponentiation
Clean up P-521 C implementation
Add missing definition for point negation
Add method to get affine x and y coordinates
Fix an error in Montgomery exponentiation
Add missing negation method for Affine Weierstrass
Add basic NIST P-521 implementation

This implementation of P-521 uses modular arithmetic rather than
specialized field operations from OpenSSL.
Minimal testing framework for EC
Add some timing resistance to Weierstrass

The number of times add and double are called on a point during
multiplication is now constant. This does not eliminate timing
differences, but it narrows the timing gap.