Introduce AsyncTextReader.DisposeAndGetRemainingBytes as a way to recover any bytes read from the underlying stream that were not converted to text.
Make AsyncTextReader's decoding support slightly more robust.
Use the appropriate encoding when parsing HTTP headers.