Quest rewards showed garbage item ids in the quest log, accept, and completion
dialogs. Verified the wire formats against vmangos/cmangos-tbc/AzerothCore and
rewrote all three parsers: query-response rewards are interleaved (id,count)
pairs at per-expansion offsets, details/offer-reward use uint32 autoFinish and
trailing emotes pre-WotLK, and WotLK has no portrait strings and variable-count
reward arrays. Adds era-parameterized parsing plus synthetic-packet regression
tests for every layout.