cache the IRecipe

act's should not re-search for their recipe, when the last recipe found
is still able to be used.

CraftingHelper.findMatchinRecipe() is identical to
vanilla.CraftingManager.findMatchingRecipe, except it returns the
IRecipe, rather than just the result.
add a method to get the recipe.
move CraftingHelper.
Merge pull request #641 from AartBluestoke/upstreamMaster

cache the IRecipe