Merge pull request #19 from Akrog/huff_gen

Huffman coding and decoding tables are regenerated from the spec document now.
Adds a new method

Implements hpack_header_block_is_empty()
Differential Encoding

Preliminary implementation of HPACK’s differential encoding. Besides
the library code, this patch extends one of the QA bench tests in order
to cover the new functionality.
Fixes #20

Fixes bug #20. The highlight-ctest.py script did not handle
segmentation faults properly.
Fixes regression

Recent changes in highlight-ctest.py broke the TravisCI integration.
This patch should solve the problem.
Bugfix

Fixes an incorrect management of header fields that led to crashes.
Convert functions to macros

Converts the assert_store_n_eq() and assert_dyn_table_n_eq() utility
functions to macros so the right source code location would be shown
when a test fails, in opposition to the function info as it was being
shown now.
Aesthetic change
Updates the draft version
Fixes format

Unintentionally removed training spaces at the end of lines, which
messed up the formatting.
Highlights a new type of error

The assertion failures thrown by ck_assert_str_eq() were not being
highlighted.
Accept multi-word commands
Notify when child test processes crash
Merge pull request #25 from Akrog/huff_gen

Issue #11: Made huffman script Python 3 compatible
Issue #18: Test integer conversion in headers

https://github.com/alobbs/libhpack/issues/18

According to the draft there are several concerns regarding the VLQ
integer representation as explained in section **5. Security
Considerations**.

These 3 new tests verify that those concerns are addressed.

Integer concerns:
- size of integers in value: function indexed_big_value
- size of integers in encoded length: function indexed_many_zeroes

They also test that a very large, and incorrect, length value will not
break the library (function: literal_w_index_false_len).
Issue #18: Test integer conversion in headers

https://github.com/alobbs/libhpack/issues/18

There was an error in the comments of function *literal_w_index_false_len*
This has now been amended.
Fixes "make test"
Minor aesthetic change

Updates the formatting of the error reporting a crashing testing
process.
Issue #26: New integer tests

https://github.com/alobbs/libhpack/issues/26

There were several important cases that were not tested by *integer_test.c*

Added tests:
- *decode_too_big_for_int*: Decodes a number > INT_MAX
- *decode_too_big_for_uint*: Tries to decode a number > UINT_MAX
- *decode_too_big_for_ulong*: Tries to decode a number > ULONG_MAX
- *en_decode_max_uint_5bits*: Encode/Decode INT_MAX with 5 bit prefix
- *en_decode_2nd_byte_0*: Encode a number with 1st byte 1s and 2nd 0s
- *decode_too_many_zeros*: Tries to decode a number with too many zeros

Most of these tests fail with the current integer encoding/decoding
algoritm.
Fix #26: New VLQ integer encoding/decoding

https://github.com/alobbs/libhpack/issues/26

Encoding would encode numbers greater than INT_MAX.
Now it can enconde up to UINT_MAX.

Decoding would have trouble with:
- Numbers greater than INT_MAX --> Return negative number
- Numbers greater than UINT_MAX
- Would process all bytes of a stream with many zeros

According to the draft if we encounter too big a number or too many
zeros in the encoding we should consider this an error. Now it does.