Propagate destroy calls down to children of branch nodes

Destroy is currently only called in cases where we create a one-off
node. This has not caused problems yet because we usually let go of DM
and CE nodes at the same time, but we should probably look into
performing cleanup during tree operations and calling destroy a little
more often.

Change-Id: I1cc71a971a728cf28967a21f4f34325b61669836
Merge "Propagate destroy calls down to children of branch nodes"