Updated BinaryTreeNode to be a struct and moved into this file. Created BinaryTreeNode typedef to make the code easier to read.
Added test for removing a node that has two children.
Added #pragma once.
Added #pragma once.
Updated deletion routines to take a Node*&. This allowed simplifying the code A LOT. Also, fixed the bad assumption that the in-order predecessor in removeNodeWithTwoChildren has no children. It might have one.