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. 
Hm. This kind of makes many assumptions about the internal workings of both FixedHash and boost::multiprecision::number<...> (and perhaps also some assumptions about the internal workings of the compiler used)). Isn't there a safer way?