More, better cables.

Made three tiers of cables:

- jumper cable is 3 tiles long (4 if you stretch it a little) and has an
expected 1% power loss (not yet implemented)
- heavy-duty cable is up to 20 tiles long (again, 21 if you stretch it a
little), with 5% power loss
- Shiny Cable is up to 50 tiles long, no power loss, but never spawns --
it is a debug tool more than anything.

I've taken over the 'epower' member of the vehicle_part JSON structure
to represent the percent power loss through a cable (as a negative
integer; technically, you could have a cable that adds power when it's
transmitted through -- don't do that).

I've also changed up the spawn rates and places: most places that can
spawn both short and long jumper cables have a higher chance of getting
the short ones. Electronics stores can only get the long cables, and
have a decent chance of getting them. Perhaps, in future, we could make
an extension cord item that can be crafted into a long cable by chopping
off the ends and putting clamps on -- for now, this should work okay.

Recategorized all the cables as tools, rather than vehicle parts, so
they don't get lost all the way at the bottom of your inventory anymore.

Similarly, made sure the cable vparts retain the damage of the items
that spawned them, and that they retain damage when removed.
Accursed power loss!

1% for the short jumper cables, 5% for the long heavy-duty cables. No
loss on the non-spawning debug Shiny Cable.

Also, the BFS traversal is now encapsulated in a simple local method,
with a couple of lambda visitors in the charge_ and discharge_battery
methods to do the right job.

Also-also, left in some debug messages for making sure the values are
actually being calculated as expected.
Change volume and weight of cables.

The jumper cables should be lighter and less bulky. The debug cable can
be whatever it likes, but it might as well be impossibly light and
small. Makes for a better description, too.
Get off-map vehicles from the MAPBUFFER directly.

Also forces off-map vehicles connected to on-map ones to load by
traversing the graph of vehicles every turn (might be a bit excessive,
maybe? Doesn't seem to slow things down appreciably in normal gameplay).

Also lets off-map vehicles generate power and consume fuel if they're
still on a submap that's loaded; most of the time, this will be just the
few vehicles actually connected to an active power grid, but it might
include some others. It's at least as confusing as vehicles that don't
consume fuel outside the reality bubble, even though their engines are
on.
Make fuel_left also recurse for remote battery.

Only when figuring out whether to turn on consumers, though. Defaults to
off.
Slow-leak from the map instead of the vehicle idle

Now that vehicles can idle while they're off-map, we can't really
perform slow_leak in there. Moved it to map::vehmove, which had gotten a
little whiny about having barely anything to do.
Fix save updating
Merge pull request #9490 from i2amroy:

- Fix save updating for multiple monster specials
Merge branch 'windchill' of https://github.com/Shoes01/Cataclysm-DDA into merge
Fix recovery & frostbite coexisting

Leastwise when you *get* frostbite, you shouldn't also get the defrost
immediately along with it.
Merge branch 'fix-removoal-of-mission-item' of https://github.com/BevapDin/Cataclysm-DDA into merge
Merge branch 'monattack-clean-up' of https://github.com/drbig/Cataclysm-DDA into merge

Conflicts:
	src/monattack.cpp

COnflicts resolved.
Stop vehicles from emitting smoke from off-map

Noise is fine, though. We *want* the hordes to be attracted to your
off-map generator.
Merge pull request #9478 from KA101/wing

Adds wing mirrors to large vehicles that can't see behind themselves
Merge remote-tracking branch 'dda/pr/9429' into dda-master

* dda/pr/9429:
  Fix misapplied fonts
  Fix for blackspace window
  Properly fix window gaps
  Define reinitialize_framebuffer() for pure curses
  Style changes
  Same fix for overmap legend
  Tiny fix to legend border line
  Support for separate Overmap font
Misc restyling.
Merge pull request #9479 from KA101/pickup

Pickup truck
Merge remote-tracking branch 'dda/pr/9374' into dda-master

* dda/pr/9374: (33 commits)
  Stop vehicles from emitting smoke from off-map
  Slow-leak from the map instead of the vehicle idle
  Make fuel_left also recurse for remote battery.
  Get off-map vehicles from the MAPBUFFER directly.
  Change volume and weight of cables.
  Accursed power loss!
  More, better cables.
  Theoretically, make chunkloaded vehicles think.
  Make remote_vehicle_maps a member of game.
  Use atoi(str.c_str()) instead of std::stoi().
  Spawn jumper cables in more places.
  Chunk-load remote vehicles if necessary.
  Spawn jumper cables in cars and hardware stores.
  Reset cable when it changes Z-level.
  Shed loose vehicle parts when dragged away.
  Removing a cable doesn't need tools.
  When one vehicle sheds its vpart, target does, too
  Just use veh_at in veh_part_coordinates.
  Use string_format instead of std::to_string.
  Fixes floodlights, fridges and recharging stations.
  ...
Ags fix
Blankets for z-levels mod