The callback is called each entry, with optional copy source,
instead of having parse_dirstate() return separate Vecs for copy mappings
and the rest of the data.
This avoids an intermediate heap allocation, but more importantly will allow
the dirstate tree experiment to store copy data next to the rest of data
instead of a separate mapping.