input: Write a python function to traverse the binary tree in-order and return the values as a list.
  assert in_order_traversal(BinaryTree().root) == []
  bt = BinaryTree()
  bt.addNode(10)
  bt.addNode(5)
  bt.addNode(15)
  assert in_order_traversal(bt.root) == [5, 10, 15]
  bt.addNode(3)
  bt.addNode(7)
  bt.addNode(12)
  bt.addNode(17)
  assert in_order_traversal(bt.root) == [3, 5, 7, 10, 12, 15, 17]
output: def in_order_traversal(root):
      result = []
      
      def traverse(node):
          if node:
              traverse(node.left)
              result.append(node.value)
              traverse(node.right)
      
      traverse(root)
      return result