Product refactor

this involves a pretty big refactor for products, representing product interactions as their own class (`ProductRecipe`) and moving `ProductType`, `Industry`, and `Market` to enums instead of classes (classes were too heavyweight and unnecessarily complicated serialization).

Also added editors for Items and Product Recipes.