Add sanity check after key generation

Add a sanity check to prevent cosmic rays from flipping a bit in the generated public key, or bugs in the elliptic curve code. This is simply done by signing a (randomized) message, and verifying the result.
Just asking, could (unsigned char*)str.data() be changed to just .c_str()?