Change HPACK to receive a callback

Note: first commit is in #415

Second commit is the important one.  It switches HPACK to use callbacks as opposed to emitting a List.  This opens us up to populating Headers objects directly.