Allow empty keys in hash_hmac() and hash_hmac_file()

Summary: Zend PHP accepts the empty string as a key for hash_hmac() and
hash_hmac_file(), but HHVM doesn't, because its implementation of these
functions delegates to hash_init(), which does not accept an empty key when
HASH_HMAC is specified.

Fix this by exploting the fact that we can sneak an empty key past hash_init()
(on both Zend and HHVM) by sending it "\0" for a key value. "\0" and "" are
equivalent because the HMAC algorithm pads the key to the right with extra
zeros to the input block size of the hash function.

An empty key test vector is explicitly included in RFC 5869[1]. MediaWiki's unit
tests verify MediaWiki's HKDF implementation for conformance by using the
test cases that accompany the spec.

  [1]: http://tools.ietf.org/html/rfc5869#appendix-A.3
Closes #2988

Reviewed By: @ptarjan

Differential Revision: D1393731

Pulled By: @JoelMarcey
Clownlist __DIR__ test in joomla

Reviewed By: @ptarjan

Differential Revision: D1395347