normalize flight data after receiving server response (#69460)
This follows the work in #69241 by moving the spot where we normalize
the `FlightData` response with array slicing etc to a single spot after
we receive a response from the server.
This includes a refactor to `fillCacheWithNewSubTreeData` to not be
recursive and instead iterate over the segment path, copying unchanged
segments until finally performing the cache node insertion at the leaf
segment.