Enhance HTTP/2 HPACK header decompression handling

Previously we just call HPACK decompressor when dessecting packets.
This is fine for the first linear scan.  But later same packet may be
dissected more than once and their header block data will be fed into
decompressor again.  This makes header compression context out-of-sync
because HPACK decompressor only works when data is fed linearly.  This
change fixes this issue by caching decompressed headers in the first
linear scan.  On random packet dissecting, they are just looked up.
This change adds support of changing header table size by inspecting
SETTINGS frame and tracking its SETTINGS ACK.

Change-Id: I9c75c67f8677063e443f9b131740f3ee94ff8a63
Reviewed-on: https://code.wireshark.org/review/2616
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>