Rewrote furnace recipe parser

* Fixes #110
I might have commented on this already.