Added merge method to MerkleTree

merge takes two MerkleTrees, computes the parent
node for the roots of both trees, and returns it.

Return type for merge as well as the helper function
inside makeTree changed from Tree[A] => Node[A] since
creating a parent implies it is a Node, not a Leaf.