Throw an error when openssl in generatePublicKey has error text.

Resolves jed/crx#5.
Any specific reason to assign an error to `publicKey`? I'd rather pass the Error object to the callback and leave the `publicKey` alone (we are not supposed to mutate it unless we pass it a public key value).