Detect smelting recipe conflicts, by ID

Example:

Conflict on recipes/smelting at 30226:0
    keeping gregtechmod-3.00d.zip.csv recipes/smelting:30226:0
    keeping industrialcraft-2_1.115.290-lf.jar.csv recipes/smelting:30226:0

Doesn't resolve, just for information. In this case, the mod is overwriting
another mod's recipe intentionally, so its not really a 'conflict' per se.
Change recipes/smelting to use a "global" ID, including mod name

Previously, smelting recipes were keyed by item ID, which of course
is not globally unique (if only..), so is unsuitable for resolving
conflicts. Now it is keyed by a new value, generated by getGlobalItemName(),
containing the mod ID (from FML GameData), a slash, and then either the
unlocalized name, or the item ID if the unlocalized name is insufficiently unique.

NOTE: Requires re-running modanalyzer.py to get this new data!
Dump shapeless crafting recipes
Add support for Forge ore shapeless recipes
Dump shaped recipes
Change shaped recipes to output width, instead of separator
Add support for Forge shaped ore recipes
Check for crafting recipe conflicts