The noMoreData methods may seem like a strange addition since there are no callers. However, the HTTP client will call this method. Since I developed this code in the client branch, I'd already written them and the tests. It seems like a waste of time to try to split up this code any more. Once the HTTP client code is merged, there will be callers.

Add an identity transfer-encoding decoder, similar to the chunked transfer-encoding
decoder, to twisted.web.http and use it to simplify HTTPChannel slightly by
removing the knowledge of any particular transfer-encoding from its request body
handling code.

Also expand the transfer-encoding decoder interface so that it will be useful for
an HTTP client and rename the chunked decoder so that its name more closely reflects
what it does.