Added methods replace(currElem, newElem) and replaceAll(currElem,
newElem).
Refactored Tree into two separate implementations (currently untested)
to separate complexity of updating parent & child references on write
access of BidirectionalTree.