Fix pickup/inventory weight display

Fixes #8894

inventory_ui: For same reasons the charges where never removed from the temporary player object.

pickup: Removed the usage `item::clone` in pickup.cpp, that function creates a *new* item, only the item type and its birthday are the same as the original one. Contents, damage etc. are all reset. Instead it uses the implicit assignment operator. Fixes the changes in weight/volume, this was simply wrong. Now it removes the weight/volume, registers the selected item as to be picked (or not), than adds the new volume/weight (if item is to be picked). The previous code would do one thing: either add weight or remove weight, but this did not work in case the item had been selected again (e.g. select 100 charges of item a, than select 200 charges of item a, using the invlet in both cases).