Fix inconsistent wreckage wheel size & more

Fixes #7194, the `install_part` function can now be given a `vehicle_part` and it installs a copy of that part (including the bigness, damage, ...).

----

It also moves the consumption of newly installed items (`consume_vpart`) before the actual installation. There was a bug report in the forum (I can't find it anymore): currently the item is consumed after the part has been installed and if the installed part blocks the access to the item, it is not found and not consumed.

This can be tested with a Semi Truck:
```
------
 H||H@
OO++OO
OO++OO
```
Put a sheet metal three tiles to the west of you, than install that sheet as board two tiles to the west. The new board blocks the access to the sheet. This produces a debug message and the sheet is not consumed. That is fixed hereby.

----

It also applies the "put remaining fuel into removed tank" feature to all kind of tanks (replaces the hard coded reference to item type "metal_tank"). Same with battery "tanks" (all kind of battery items (small, motorbike, truck battery, ...)  are used now).