Crypto package multiple fixes and enhancements

* Fixed build issue with newer openssl where support for hash
  functions such as MD2 can be conditionally disabled
* Added -lcrypto to edit_source.c when PACKAGE_CRYPTO is enabled
* Efficiency improvements to the hexdump function
* Fixed improper use of strlen on byte-counted strings
* Fixed memory leak of error string on "unknown hash" error
* Fixed memory corruption from storing the wrong type of malloced
  memory on the stack
* Added support for sha512, sha384, sha256, and sha224