Update to Latest Map
Merge remote-tracking branch 'upstream/dev' into dev
Medbay Map Commit to Latest Dev Map
Chemsmoke rewrite

- Complete rewrite of the chemsmoke spawning code (everything that happens after the reaction to create the smoke).
- Moved it into it's own file since it's a little longer than the old one code-wise.
- Tweaked the smoke sprites; gave chemsmoke directions for more randomization, and tweaked the timing of their animations so they are smooth now.

Most of the code is documented, so you should be able to follow what's going on just reading through it. In short though:
- Chemsmoke now affects a circular area with a variable range depending on the total amount of chemsmoke created (no more 1-of-each-ingredient smoke grenades - sorry).
- The carried reagent volume in the cloud balances itself according to how big the affected area is (larger area, less carried reagent per turf).
- The carried reagent has more volume the closer you are to the centre of the cloud.
- The visual smoke effect scales with how big the affected area is.
Reagent reaction_mob/turf tweaks

- Adds an if() check to reaction_mob for catching a very rare runtime related to mobs inhaling smoke reagents from just deleted smoke.
- Carbons reaction_turf proc now modifies a single dirt overlay layer, instead of just adding more decal objects to the turf.
- Added some checks to the radium and uranium reaction_turf proc so it doesn't stack multiple greenglow decals.
- Performed colon removal surgery on thermites reaction_turf proc, also tweaked it's overlay operation to correctly overlay a chemical puddle effect, instead of a melted wall effect.
- Removed space_cleaners overlays.Cut() code, since it was removing decals from turfs.
Runtime fix

- Fixed a runtime caused by effects bumping disposal chutes.
Added Z-level support.
Added Z-level support for ZAS, disabled by default to save CPU.
- Use #define ZLEVELS or uncomment it in _docs.dm to turn it on.
Fixed a special case with simulated turfs being replaced by space.
Actually any unsimulated turf, but mostly space.
Fixed some zone.remove() bugs:
Turf should be set back to no gas overlays.
Debug mode checks if zone actually contains turf
(might be useful in turf replacement.)
Fixed some weird bugs concerning space and the creation thereof.
Added documentation, split ConnectionManager.dm, removed some unused procs.
Added a proc to find the other zone in an edge for future procs.
Fixed the stupid .int again.
Fixed some debug verbs, removed ZASDBG define.
baystation12.int is the worst thing to happen to version control
Updates

Medicine Cabinet(s), Acute Doors
Zones didn't split when a full window was placed.
Fixed walls not splitting zones.
Added code protecting against obscure merges of invalid zones.
 - Usually happened when welding fuel tanks caused secondary explosions.
Removed a leftover generally-accessible debug verb.
Added Reboot ZAS as a debug verb.
 Replaces the air controller, marks all old zones invalid,
 and adds every turf to the update list. Results are the same as on a
 server start.