refactor to use function calls to the template.

so that getSubItems et.al. can be over-ridden when something can craft
multiple items.
basic AE crafting template work - multi-handling in the tree, not the pipe

doesn't compile, pipe items crafting ,and the logic, need to be changed
to take into account lists.
store extras by item type, crafting can return a list

now compiles.
HUD takes just the 0th item on the list to display.

base crafting should be unchanged, just passing a 1 element list, and
that element is used.

AE crafting not enabled, code to create the new class not in the
crafting logic yet.
ask the child to destroy itself, don't pass the parent.

and protect against an NPE when you ask a hud to show a blank crafter.
ask and ye shall recieve (from a requstTree)

you request crafting from a requestTree, not a crafting template.
also, make most of RequestTreeNode private, or protected, including
constructors.

code simplifcation: RequestTreeNode constructor now creates sub-requests
also.
RequestTreeNode only exposes *type* of internal request, not count. (no
chance of other things messing with it when we don't expose the real
item)

all the different request types, except for liquid, now go through the 1
function.

that liquid function is asking for a refactor, as it calls
getLiquidProviders, something the root tree shouldn't care about.
remove many un-needed casts, and add a few optional @Overrides for clarity

also remove a bunch of unneeded includes