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.
That'll break in the `[response].flatten` scenario (which may be pathological, but there are tests for) because the `response.body_parts` array will get flattened down to a string (or nil if empty). This is what lead to my original implementation of returning a new `RackBody` with `to_ary` undefined.

Here are those various scenarios played out: https://gist.github.com/javan/934aa107fcc08f72fce8

Having `to_ary` return nil seems to be the sanest option.