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. 
I know, this is why I did not scream "NOOOOO!" ;-)
Safe would be: ctr = FixedHash<AES::BlockSize>(toBigEndian(u128(fromBigEndian(ctr.asArray()) + (text.size() % 16))))
Another option would be to hold the number in a u128 and only convert to a hash on request.
Even better: Provide a nice way to convert between all our types :-)