[Bleeding] Check that vanilla recipes actually exist. Fixes BUKKIT-5277

When falling back to vanilla recipes in the iteration of recipes,
a check is neccessary to ensure that vanilla recipes are present.
In addition, in order to minimize CraftBukkit diffs from 15db099e224e3c13ca63764e80ec4d599336c05f
the getResult() method will now use maps exclusivly for that method,
and the recipes map's behavior will remain as it was before, so that
all outside access to it still behaves properly.
RecipeIterator has been modified to account for the multi-map setup.