Replace add_item_by_type by proper item creation

And add the item by player::i_add instead of putting it into the inventory directly.