Describe the bug
ArrayData::slice() does not work for nested types, because only the ArrayData::buffers are updated with the new offset and length. This has caused a lot of issues in the past.
This blocks us from being able to implement RecordBatch::slice(), and has led to creating #381 to sidestep this issue.