re-added the check for infine recusive crafting

made requestTreeNode have a copy-constructor, rather than a copy method,
so that the arrays can be directly initialized to the correct size