Fix ShapedRecipe matching

This pull request includes improved ShapedRecipe-items matching and introduces an additional check for it. Fixes: #465. 

**Modifications**
By moving the `position` label to the column-start loop, possible recipes aren't skipped due to only being available in at a higher column number, when a lower column number check fails. In addition to that the `ingredientChar` is defined as the appropriate char in the current row of the shape, or if it isn't available in there, a space. The additional check simply examines the existence of items outside the validated recipe part of the given items.

**Result**
More reliable crafting of shaped recipes.