curve25519: Curve25519/X25519 support

The curve25519 module implements the x25519 function which performs scalar
multiplication on the elliptic curve known as Curve25519. See RFC 7748.

The implementation is based on the paper "Implementing Curve25519/X25519: A
Tutorial on Elliptic Curve Cryptography" by Martin Kleppmann.

This is a low-level module which implements cryptographic primitives. Direct use
of cryptographic primitives is not recommended for non-experts, as incorrect use
of these primitives can easily lead to the introduction of security
vulnerabilities. Non-experts are advised to use the high-level operations
available in the top-level [[crypto::]] module.

Be advised that Hare's cryptography implementations have not been audited.
