Fix meta on delete

Metadata wasn't retained correctly on deletion. When node is deleted and it has children - min child is found and it should "replace" current node. In old version new "replacing" node got metadata from old node but is should get metadata from min child. Min child is found using `find-min` function. I changed `find-min` so it returns vector, not array and attaches metadata to the vector. 

I also made small refactoring: I used `assoc-in` and `update-in` functions where new node is created based on old node.