Add encoding_context.js and implement Encoder.encode{Octet,Integer}()
Implement Encoder.encodeASCIIString()
Implement Encoder.encodeIndexedHeader()
Implement Encoder.encodeLiteralHeaderWithoutIndexing()
Implement Encoder.encodeLiteralHeaderWithIncrementalIndexing()
Implement Encoder.encodeLiteralHeaderWithSubstitutionIndexing()
Implement HeaderTable.tryAppendEntry()
Implement HeaderTable.tryReplaceEntry()
Implement ReferenceSet methods
Have HeaderTable.try{Append,Replace}Entry() return an offset and index
Implement Encoder.flush()
Implement ReferenceSet.hasReference()
Implement EncodingContext.flush() and EncodingContext.encodeIndexedHeader()
Implement EncodingContext.encodeLiteralHeaderWithoutIndexing()
Implement EncodingContext.encodeLiteralHeaderWithIncrementalIndexing()
Implement EncodingContext.encodeLiteralHeaderWithSubstitutionIndexing()
Add initial header tables in header_common.js
Implement HeaderEncoder.encodeHeaderBlock()

Also implement EncodingContext.addInitialHeader().
Separate Encoder from EncoderContext
Move Encoder to header_encoder.js