Refactor code for adjusting dish ingredients
Closes #370. Change started as bugfix for that but I soon realized the old code was somewhat broken and entangled.
-
reduce code duplication
-
clearly split code for handling dish ingredient/item value
-
name methods more precisely
-
improve error handling
-
pass UnitConversionGraph object around even more to avoid rebuilding it