Implemented recover method

I've edited the recover method to make use of 2 new methods, the first creates an adjacency array, and the second uses this adjacency array to repair the lft and rgt of all nodes within the array. This recovery assumes that the parents and roots are correct.