Rewrote furnace recipe parser

* Fixes #110
I like defines, they show up purple. Using variables that don't actually vary feels counterintuitive, I suppose.

Also, static const char RECIPE[] = "furnace.txt" is meh.