Add a second vehicle::install_part function:

The original one create the vehicle_part and calls the new one, the new function only adds the vehicle_part to the parts list.
The new function is used when creating a wreckage during mapgen: it adds the already created vehicle_part from the new vehicles to the wreckage.
This ensures consistent bigness properties.
Add another vehicle::install_part function, using an item as reference.

The function automatically uses the properties of the item to initialize the properties of the vehicle_part.
Use this function veh_interact, this moves the consumption of the item
before the actual installation. Also making sure that newly installed
obstruction don't hide the item that is to be installed.

Extended the constructor of vehicle_part to set the desired values instead of default values.

Move the item properties to/from vehicle_part code into two functions:

Combine vehicle::get_part_properties_from_item and vehicle::give_part_properties_to_item and vehicle::item_from_part
to vehicle_part::properties_to_item and vehicle_part::properties_from_item

Those two handle fuel transfer (including batteries) to/from item and
transfer of item bigness and damage transfer.
Remove warning, and fix bug, thanks to Wishbringer.

The dx, dy are actually needed to be set for the wreckage part to work because the combined vehicles have different origins and therefor a different coordinate system.
Display (0) charges for tools (like charcoal smoker) inclusive to the
already default display of charges.

Change for 2 reasons. (1) I like to use the
non-advanced menu on my stash to quickly find and reload my empty
tools (like charcoal smoker) run out of charges.
The advanced menu doesn't let me auto-wield big tools, the normal
pick up menu does. This small change let's me see which tool ran out
of charges faster.
(2) I need some excuse to learn the code via small projects or
I'll continue to have analysis paralysis.
Not sure my changes will be significant over time, but in case they are this will prevent sadness.
initialize vehicle direction in its constructor
Merge remote-tracking branch 'dda/pr/7674' into dda-master

* dda/pr/7674:
  initialize vehicle direction in its constructor
  Remove warning, and fix bug, thanks to Wishbringer.
  Add another vehicle::install_part function, using an item as reference.
  Add a second vehicle::install_part function:
Merge remote-tracking branch 'dda/pr/7679' into dda-master

* dda/pr/7679:
  Display (0) charges for tools (like charcoal smoker) inclusive to the already default display of charges.
Merge remote-tracking branch 'dda/pr/7680' into dda-master

* dda/pr/7680:
  Not sure my changes will be significant over time, but in case they are this will prevent sadness.