Takes a node and creates a subtree with the node as the root. The subtree created must not mirror modifications to
the source tree. Mutable trees need to create copies of the subtrees, immutable trees can return views of the source
tree. The tree returned should use a type related to the source node. This is to support returning subtrees of a tree.