crypto: Make unloading of crypto safer

Facts:
crypto nif-lib registers callback functions that openssl uses
for memory management and thread synchronization. The callback
functions can only be set once, openssl does not allow changing the
callback functions.

Problem:
If openssl is dynamicly linked to crypto, you might get s scenario
where the crypto lib is unloaded while leaving openssl loaded
with its old pointers to the unloaded crypto code intact.
If crypto is then reloaded (by init:restart() for example), the crypto
nif-lib might get relocated at a different address. crypto calls
openssl which in turn calls the old invalid callback functions...kaboom.

Solution:
Break apart the callback functions into a separate dynamic lib that
crypto loads with dlopen. When crypto is unloaded the callback lib is
left in place to be reused if/when crypto is loaded again.
crypto: Enable runtime upgrade of crypto
crypto: Add debug print macros
crypto: Link crypto_callback statically

if static linking of openssl is used.
Merge branch 'sverk/crypto-unloading'

* sverk/crypto-unloading:
  crypto: Link crypto_callback statically
  crypto: Add debug print macros
  crypto: Enable runtime upgrade of crypto
  crypto: Make unloading of crypto safer

OTP-10596
crypto: Throw notsup for DES3 CFB encryption for old openssl

An attempt to enable the use of openssl 0.9.7
crypto: Fix some documentation bugs
crypto: Add some unlisted test cases as part of the test suite
crypto: Make crypto:info() up to date

Also added test code to check the consistency of crypto:info().
crypto: Let info_lib return header version instead of lib version
crypto: Refactor test with if_098 helper function
crypto: Skip sha256/512 tests for openssl 0.9.7
crypto: Document all types currently available for hmac_init
crypto: Provide a generic interface for HMAC generation
crypto: Add RFC-2202 test vectors for HMAC-MD5 and HMAC-SHA1
crypto: Add test cases for the generic hmac interface in the RFC-4231 tests
crypto: Add RFC-4231 test vectors for output truncation
add ripemd160 support to crypto

add ripemd160 message digest support to the crypto app,
includes some test cases.
fix missing defines for RIPEMD160_CTX_LEN and RIPEMD160_LEN

A couple of #defines were missed in my previous patch.
fix ripemd160 to use hash_init family and add documentation

this patch removes the exports for ripemd160 from the previous patches
and incorporates those functions into the hash_init family. documentation
is also added.