make use_charges_from_map_or_vehicle consistent with inventory::charges_of

Makes `use_charges_from_map_or_vehicle` use the same logic as `inventory::charges_of` when checking if an item matches the required type and how many charges it contains.

fixes #3207