Code cleanup and improvements

- No longer throwing a LogicException in AbstractNode::__toString due to: https://bugs.php.net/bug.php?id=53648
-- If the current child count for a node is less than the minimum acceptable count, an E_USER_NOTICE error is spit out and an empty string returned
- Renaming validParents to allowableParents
- Renaming validChildren to allowableChildren
- Renaming validAttributes to allowableAttributes
- Adding / Updating lots of tests