Implemented missing requirements functions, added doxygen comments
Fixed a stray untranslated string
Use for-in syntax for iterating book recipes
Fixed critical failure and learn probabilities
Removed the count of quality requirements. It's just a dummy for some template magic
Removed the dummy quality count from JSON files
Added a  paramter to requirement listing functions
Renamed cap parameter of player::practice to task_difficulty
Removed the book-specific recipe level from code, as it was unused already anyway
Fixed trailing colon problems
Fixed spacing between elements in requirement_data::make_list
Updated crafting menu search string
Unlearnable recipe coloring changes
Groundwork for splitting requirements into separately loadable objects and new JSON layout