Make EdDSA work as documented

Hi,

I'm a bit confused by the `EdDSA` class. It doesn't seem to do what the headers suggest.

For example, `EdDSA::sign()` computes a signature but doesn't store it anywhere.
Here are a few changes to simplify the code and make it work as advertised.