Make MerchantRecipes metadata-sensitive

This update to the classes `net.minecraft.village.MerchantRecipe`and `net.minecraft.village.MerchantRecipeList` makes them check if the ItemStacks have the same metadata / damage when comparing them. This ensures that mods that use metadata for their blocks and items don't run into conflicts or gamebreaking bugs when adding new trades.
For example, if a mod ModA adds a trade for their block BlockA, which has the data value 1234:0, but it adds a way less expensive or more common block BlockB with the data value 1234:1, it would be possible to trade BlockB, which seems rather OP.
However, this makes it impossible to trade for example Red Wool where White Wool is required, or trade damaged Tools with emeralds to get enchanted, repaired Tools. Even though this is Vanilla 1.7 behavior, this changes in 1.8 to what I did in this update (Source: [Minecraft Wiki](http://minecraft.gamepedia.com/Trading#1.8_Trading_Revamp)).
I am not sure if this is wanted in this Forge release, and I can change that if not.