nghttpx: Add rate limit per worker thread

The existing options --{read,write}-{rate,burst} are per connection.
The new options --worker-{read,write}-{rate,burst} are per worker
thread, which is overall rate limit of all connections worker handles.
Introduce nghttp2_buf to ease buffer management
Replace NGHTTP2_FRAME_HEAD_LENGTH with NGHTTP2_FRAME_HDLEN
Replace NGHTTP2_MAX_FRAME_LENGTH with NGHTTP2_MAX_PAYLOADLEN
Return 0 if nghttp2_session_prep_frame succeeds rather than frame length
nghttp2_hd: Use nghttp2_bufs, avoiding realloc()
Remove nghttp2_buffer
Rework outbound frame buffers
Don't call on_frame_recv_callback after stream close or being closed
inflate_header_block: Issue RST_STREAM if header decompression failed
Use calloc instead of malloc + memset; remove useless memset
Fix broken nghttp2_bufs_avail
deflate_hd: Fix mishandled error return from emit_indexed_block
Fix tests to reflect their intent
nghttp2_hd: Treat prematurely ended compressed header block as error properly
src: Use std::numeric_limits<>::max() instead of INT64_MAX
h2load: Use raw-string literal for help output
h2load: Support -W option for SPDY, if the value >= 16
nghttp: Use raw-literal string for help output
Code cleanup