Store crafting components of the item.

Adds the components list to item class. This contains the items that were used to create the item.
It is set during crafting and retrieved during disassembling.
Also stores it in savegame and shows it in item info.
Fix a bug that I stupidly overlooked.

It would skip a stack of items when the current stack has been completely erased.
Fix a bug in use_charges_from_map_or_vehicle.

It would set quantity to some negative value, instead of only decreasing it.
Rewrite game::complete_disassemble to clean up.

Dissasemble uses either the first component (of alternatives components) or one in the components list of the item.
Refactor game::consume_items,

Easier to read and contains fewer code duplication.
Also condense items that are counted by charges to one item in the result list.
remove_ammo: remove removed ammo from item.
Add check for enough charges when disassembling.

Used components are not stored for items that are counted by charges. Those items are merges into one item which screws up that setting.
disassembling yields charges only for stuff not crafted by player
Adds muzzle brake gunmod.

Like a bigger, nastier ported barrel. This one adds extra size to the
gun, but decreases recoil by quite a bit.
Selecting the pane you've got on the opposite side in advanced inventory now switches their location around. Fixes #6215
extract local variable item_pos for readability.

fix bug where wrong charges would be subtracted from disassembled stack
make default background of tiles -1 for multitiles, as it is already for normal tiles.
Fixes bad grammar.
Recipe to produce your own powdered eggs.

Now that we have the base material and all.
Merge pull request #6692 from Rivet-the-Zombie/muzzle-brake

Adds the ported barrel's big brother, the muzzle brake gunmod.
If it's (on), it's off the list

Because NPCs don't set their (on) items to actively use charges.  If you
were to obtain such an item, it'd be permanently active and consume no
charges.

So they're on the trader_avoid list.
Gappy armor is the worst!

Fixes typo.
Merge pull request #6715 from KA101/TraderAvoidOn

If it's (on), it's off the list
Merge UI tweak for advanced inventory.
Fixes incorrect materials in thermal electric clothing recipes.