poly1305: switch to poly1305-donna

In some very non-scientific benchmarks, these portable implementations
are *significantly* faster than the original counterparts - in a
protocol implementation, perf reported that `poly1305_mac` completely
dominated the runtime (over 60%) while this reduced it to less than 8%
on the profile.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
chacha20: use chacha20-krovetz

So, my implementation was fast, but not fast enough. The SIMD
implementation by Ted Krovetz is, as far as I'm aware, both the fastest
and easiest implementation to use. This doubled the speed of my
networking protocol code. Combined with the previous commit, this
cranked up the speed from 20Mb/s -> 110Mb/s

Signed-off-by: Austin Seipp <aseipp@pobox.com>
curve25519: use Andrew M's curve25519-donna

This version is based on the original curve25519-donna by Adam Langley
but is a bit easier to use and has additional optimizations. Overall,
this should be significantly faster in every workload (but I don't have
exact numbers at the moment).

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Fix a bug in the Curve25519 module.

The parameters were swapped, which was exposed due to the new Curve25519
implementation.

Signed-off-by: Austin Seipp <aseipp@pobox.com>