VDI.compose: rewrites the cached child information, refreshes tapdisk

Refreshing tapdisk is required because the leaf is active
and will not have the correct data after a reparent.

Rewriting the cached child information is important to avoid
later problems with the GC

Signed-off-by: David Scott <dave.scott@eu.citrix.com>