Fix a memory leak, we weren't freeing the multiple-block addresses
or instantiated keys; don't free them, steal the pointers instead.
Merge branch 'new-split' into new-split-move-parent-reference