Test for using bytes internally.
Change the static tables to bytes.
Unicode at the edges.

The Encoder and Decoder classes currently use Unicode strings
throughout. This seemed reasonable at the time they were
originally written: it seemed sensible to have the interface to
bytes at the bottom of these classes, not the top. However,
becuase the entire HPACK spec defines headers in terms of octet
sequences, we had a lot of very costly operations. In the worst
cases, we had a linear 2n cost each time we calculated the size of
the header table, as we had to encode every header name and value.
Because we calculated the size of the header table every time we
encoded/decoded a header, this led to a whopping 2nm flat overhead
that could be totally avoided if we simply encoded headers as they
came in and decoded them as they went out.

This change moves the bytes interface to the top of the class,
replacing our 2nm cost with a single 2m, where m is usually << n.