Made loadout selector generic, implemented Descriptor in WeaponDefinition and remove WeaponDescriptor