add a DeepClone trait

for deep copies through shared ownership boundaries