use MD5 directly instead of EVP, in preparation for CommonCrypto port
use CommonCrypto instead of OpenSSL on OS X to avoid deprecations; it is slightly slower though
small refactor to make it easier to swap hash algorithms
buffer data to hash up to 16 bytes. this does nothing to performance on openssl, but is required by the next hashing algorithm.
trial implementation of siphash to run performance tests; tests need updating