Signature verification, fix keypair constructor, cleanup.

So that kdf<H>(msg) != H(msg). How to handle/address such edge cases is a bigger question.