Signer.sign() now throws KeyNotFoundException

It seems reasonable that signers can throw KeyNotFoundException (because sometimes the key is not found)