input: Write a python function to traverse a binary tree using in-order traversal.
  assert inorder_traversal(None) == []
  assert inorder_traversal(BinaryTree().root) == []
  bt = BinaryTree()
  bt.insert(5)
  bt.insert(3)
  bt.insert(7)
  bt.insert(2)
  bt.insert(4)
  bt.insert(6)
  bt.insert(8)
  assert inorder_traversal(bt.root) == [2, 3, 4, 5, 6, 7, 8]
output: def inorder_traversal(root):
      def traverse(node):
          if node is None:
              return []
          return traverse(node.left) + [node.value] + traverse(node.right)
      return traverse(root)