Synchronized actual recipe lookup to client thread, should fix #5.
Added timeout to recipe computation, search will now treat the current item as a "terminal" item (same as when blacklisted) as soon as the timeout is hit, should fix #4. Would have preferred a more... intelligent system (abort depth search when another parallel branch is known to be more shallow already), but that's getting a little... too messy for now. Will have another look if this is still an issue.
Added config versioning for config patching on default changes.