Rewrote furnace recipe parser

* Fixes #110
Although you should have kept it as `f` to avoid collision with the `Fuel F` being declared later; clang complains about this (and it's right, that's poor style).