HTTP/3: avoid unaligned stores in Huffman encoding
The encoder wrote accumulated bits by casting the destination to
uint64_t *, or uint32_t * on 32-bit platforms, and assigning through
it, which requires the destination to be suitably aligned.
In HTTP/2 the destination is a temporary buffer from ngx_palloc() and
is always aligned. In HTTP/3 it points past a variable number of
prefix integer bytes, so its alignment is arbitrary and the store is
undefined behaviour.
Byte order conversion is now separated from the store, which is done
with ngx_memcpy().