[C] Added support for data values on furnace recipes. Fixes BUKKIT-1657, BUKKIT-3846

**The issue:**
Furnace recipes are stored by ingredient ID even though Bukkit API allows data value for ingredients, that makes API users rely on that until they find out that if they add two recipes with the same ingredient ID but diferent data values, only the last added recipe will work, the previous will be overwritten because it is stored by ID in the code, ignoring data value completly.

**PR breakdown:**
This commit changes how furnace recipes map's keys are stored, it uses a String instead of Integer.
Using a string will allow ID:data of ingredient to be stored when a specific data value is given.
If user choses to skip the data value he needs to enter 32767 (Short.MAX_VALUE) in the API method (not messed with in this commit) to act as a wildcard just like in workbench recipes, and if that value is detected only the ID is stored.
When getting the result it first looks for ID:data combination and if that is not found then it looks only for ID.

Bottom line, this allows plugins to add furnace recipes like the API advertises, with ID and data value for ingredients.


**Testing Results and Materials:**
Tests:
- Tested recipe specific data values
- Tested recipe with wildcard data value
- Tested recipe without data value - works like data value set to 0
- Tested recipes with specific and wildcard data values together - specific data value recipes smelt their results and whatever does not have a specific data value recipe will smelt the wildcard data value recipe
- Tested if furnace does not burn ingredients that do not match a recipe
- Looped through recipe iterator and checked furnace recipes for consistency
- Tested vanilla recipe for cactus (unchanged recipe) and log (changed recipe)
- Tested vanilla results if they gave the same experience after being added as result for custom furnace recipes.

All work as expected.

Test plugin with all tests: http://s000.tinyupload.com/index.php?file_id=63893576315273568923 (source in the jar)

**JIRA Ticket:**
Ticket: https://bukkit.atlassian.net/browse/BUKKIT-1657

Also, while editing code for this commit I found a bug which I also fixed, details in the ticket: https://bukkit.atlassian.net/browse/BUKKIT-3846