Adding support for HTTP/2 binary headers

Motivation:

The HTTP/2 spec does not restrict headers to being String. The current
implementation of the HTTP/2 codec uses Strings as header keys and
values. We should change this so that header keys and values allow
binary values.

Modifications:

Introduced ByteString from okio (with a few minor mods). Added new
BinaryHeaders interface and made Http2Headers extend it. Various changes
throughout the HTTP/2 codec to use the new interface.

Result:

HTTP/2 codec no longer requires string headers.
@nmittler - I would say it is worth it but lets hold off until we resolve the other bigger issue in which we may end up using TextHeaders anyways (so we won't have to review 2 different code sets).  It may also make sense to open another issue on this if we do go this route.