Add support for Rack::ContentLength middelware

Currently, Rails is not compatible with `Rack::ContentLength` because `ActionDispatch::Response::RackBody` instances don't respond to `to_ary` and, even though it's not part of the Rack spec, it's how Rack decides if a body has a knowable length. There's some discussion in https://github.com/rack/rack/commit/2b3abc73f3e3a23110f2c8f43458416674130511, which was later reverted leading to #1160. And a little more in https://github.com/rack/rack/commit/94952077baa9cb6a8712064baab51eba6f43adb1. 

IMO, Rack should remove the `to_ary` check. This change provides immediate support and should continue to work if / when Rack does make the change.
`Rack::ContentLength` isn't actually doing a conversion. It's using `body.respond_to?(:to_ary)` to implicitly decide if the body is a fixed length or not, but never calling `to_ary`. Here's the full condition:

```ruby
!STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &&
  !headers['Content-Length'] &&
  !headers['Transfer-Encoding'] &&
  body.respond_to?(:to_ary)
```

IMO, using the headers and status code is sufficient. Streaming responses should take care to set the appropriate headers, [like Rails does](https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/streaming.rb#L198-L210).