Turned IJsonTreeNode interface into abstract class JsonTreeNode to remove duplicated code in child classes.
Tests for setParent() method with null argument.
IJsonSerializer's serialize method now operates on the more generic JsonTreeNode instead of JsonTreeBranchNode.