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
advanced extractor uses ISpecial
Merge branch 'Dev' into multiCrafting
quicksort might handle SpecialInventories also.
DON'T ATTEMPT TO SEND AN EXDIM BARREL IN 1 TICK.
remove dead code
_promisetotals might be used in the constructor, add a check
remove needs to possibly init promises...
fixup SpecialInventory handling on qsort
break the loop when you send nothing.
don't fetch oversize stacks, bail on 0 size stacks.
don't crash with extras and multiple orders.
simplify logic, fix extras handling when sending.

also handle the case where there might be multiple types of extras.
Merge commit 'b463458911a99e4aeb361ec2ff11301489229044' into multiCrafting

Conflicts:
	common/logisticspipes/proxy/specialinventoryhandler/DSUInventoryHandler.java
Merge branch 'Dev' into multiCrafting