Refactoring binary tree to become template. Implementing iterative algorithms
for all depth-first traversals. Adding respective unit tests.