Simplified the algorithm for deep cloning a bit - and improved its
supported cloning scenarios, such that cases where children are refering
to their direct or indirect container via observer/observee also gets
handled properly. 

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>