extract machine list
catch unsolvable (invalid) crafting sequences
fix ForbidMachine

* crafted item is considered primitive if ALL of its crafts require a
  banned machine (was: any crafts)
* otherwise, allow crafts from nonbanned machines
move exceptions out into separate file
Separate file with exceptions
Merge branch 'master' into sinatra