Experiment HPACK with upcoming changes

* remove substitution
* reversed insertion and removal from header table
* unified initial static table
Don't allocate name when indexing with name in static table
Remove NGHTTP2_HD_INVALID_INDEX
Make max header table size configurable
Implement static Huffman for header compression

The current implementation uses Huffman code tables described
in http://tools.ietf.org/html/draft-rpeon-httpbis-header-compression-03
Updated latest initial static header table
Fix leak on failure
Protocol ID change for HPACK experiment
Add auto-generation tools
Merge branch 'master' into hpack-exp

Conflicts:
	lib/nghttp2_hd.c
encode_length: Or-ing first byte with prefix mask

So that we can preserve leading bits.
nghttp_hd: Use huffman encoding only when it is usable

We use huffman encoding only when its encoded length is strictly less
than the original length.
As noted in the HPACK draft, the length of name/value is now 7-bit
prefix and its MSB is 1 if the following string is huffman encoded.
nghttp_hd: Refactor emit_indname_block and emit_newname_block
nghttp_hd: Use NGHTTP2_HD_SIDE_{REQUEST,RESPONSE} instead of {CLIENT,SERVER}

This change conveys better notion about compression context.
Update huffman table and static table

Use huffman table in https://github.com/grmocg/httpbis-header-compression
hdtest: Add HPACK test tools

These test tools uses JSON as input/output and could be handy
to produce compressed header blocks.
Fix error with maintainer-mode
Merge branch 'master' into hpack-exp
nghttp2_hd: Add static table entry to dynamic table on emission
nghttp2_hd: Share static table globally