[Enchantments][Items] Refactor

- This is a pretty huge refactor. I wasn't totally pleased with how I defined the affix generation
-- Affix generation is specific to items, so I made it part of that namespace now.
-- Enchantments are split between stores/definitions (where a "store" maintains state, and a "definition" defines criteria for making an enchantment)
-- Enchantments themselves only have their values randomized... You never randomly pick an enchantment based on criteria. That's meant for affixes.
-- A base affix generator is encapsulated within a class that can randomize affixes or created named ones.
- Enchantment stores and definitions were modified to be immutable. They now have factories to support their creation.
- Probably other small tweaks as a side effect.