Fix crypto.hmac behavior with empty keys.

node 0.9.6 introduced Buffer changes that cause the key argument of
Hmac::HmacInit (used in crypto.createHmac) to be NULL when the key is
empty. This argument is passed to OpenSSL's HMAC_Init, which does not
like NULL keys.

This change works around the issue by passing an empty string to
HMAC_Init when the key is empty, and adds crypto.createHmac tests for
the edge cases of empty keys and values.
test: fix tests after ECONNRESET patch
bench: Add common script
bench: Add ab() method to common for http testing
bench: add runner
bench: A compare script for analyzing benchmarks
bench: Move net-pipe into benchmark/net
bench: net benchmarks using common script
bench: Remove throughput (covered by benchmark/net)
bench: Remove client_latency

No one actually knows what this is supposed to be doing,
anyway.  It's not a good benchmark.
bench: http benchmarks

Also: make http_simple less chatty
bench: misc/url
bench: misc/startup.js
bnech: buffer-base64-encode
bench: Buffer creation
bench: Buffer read/write benchmarks
bench: Merge fast_buffer_creation and buffer_creation
bench: Remove unused 'fast_buffer2' benchmarks
bench: Add buffers/dataview_set
bench: Arrays