Another round of header APIs cleanup.

This promotes Headers to a public API from the internal package.
It moves some of its methods to OkHeaders, which has been renamed
from SyntheticHeaders.

Making the Headers class public API makes it possible to remove
more exotic APIs from Request and Response like the APIs to track
headers by index rather than by name.