This is the trickiest part of this change. I think I'll be able to fix this in a follow-up by using Request + Response more internally in HttpEngine. The tricky part of that change is that Request + Response are immutable, but the classes in use now (RequestHeaders, ResponseHeaders) are mutable.