Marshalling of Magazines added and adapted marshalling hierarchy

- AbstractItem, BackpackItem, UniformItem, VestItem, AssignedItems removed entirely
- Item and AssignableItem added
- Item is the non-abstract base class of Magazine and AssignableItem
- Added Attribute ItemTypeAttribute to identify Item types and derived types

The current solution is static in the sense that when evaluating Item type candidates, it checks the base class for the attribute ItemTypeAttribute but then always defaults to creating a Magazine object. This will fail as soon as we either get a type that has the same fields as a Magazine (it will assign all values just fine; just that it wont be an actual Magazine in the end) or we get a type that looks like a Magazine but has more blocks inside. And that actually will crash and burn. The latter case should simply alert us to an in-game entity we havent modeled while the former would involve changing the calling code from inside ArmA as pointed out in this issue: https://github.com/Rusk85/wastelanda23_addins/issues/3