fix depth() and delete()

1) depth() was not accumulating the correct values via recursion. fixed that.
2) delete() was implemented for array case.
   required a new function pullup_array()
3) pullup_array() is a o(n) operation that adjusts the 
   array positions when a node is deleted in between.