Dechunk result if necessary

Fixes #2710. Implementation is based on OP @marcuslinke 's workaround.
This is unnecessary, since you're just creating a new enumerator that contains the consumed bytes.  You should be able to just return the transformed enumerator, eg:

```scala
r.copy(body = e)
```