Crypto refactor, thread-safety, ecdh, tests. fix #492

For now, calls to secp256k1lib have been replaced by cryptopp. Ironically, after a bit of research on performance, the takeaway is that rather than removing secp256k1lib, it maybe better to remove cryptopp in favor of openssl, keep secp256k1lib, and implement ECIES. 
Why not use `FixedHash::random` here?