Handle non-canonical curve points same as ref impl

Non-canonical curve points (values with the 256th bit set) were
previously handled by masking off the high bit and interpreting the
remaining bits mod 2^255-19.

However, djb's reference implementation handles them by treating them as
a 256-bit number and reducing the whole value mod 2^255-19.

This change alters the code to follow the reference implementation.