Corrects misspellings in Ion laws.
Reverts vent status broadcast change
The Research division is now a pure area instance.

With this it's now possible to create a grep, or similar check, for Travis to ensure /area{name = *} never happens again as this can cause issues with APCs.
Merge pull request #5723 from PsiOmegaDelta/Ion

Corrects misspellings in Ion laws.
Resets values for vents/scrubbers that were equal to the default.
Freezers now have appropriate icons on the map depending on state. Cleans up freezer and medical door vars.
Arranges vent settings, default values and icon state in particular.
Replaces airless turfs in medbay with airfull variants. Adds protection around disposal chutes.
Tries to arrange the ion laws in a more readable way, changes a few laws to be more correct, adds new laws.

Changed laws:
"Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].",
"[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort."
"You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush."

New laws:
You must speak as posh as possible.
Contemplate how meaningless all of existence is.
You must try and change the subject whenever queried.
"[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.",
"[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this conclusion.",
new XGM gas mixture datum

Gases are now represented in an associatiee list instead of harcoded
 variables.  gas = list("oxygen" = 20, "nitrogen" = 80)
New cleaned up share_ratio(), share_space() and equalise_gases() procs.
Gas can be modified with adjust_gas() or adjust_gas_temp(), with
 variadic versions available for both. These are documented in
 gas_mixture_xgm.dm

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
integrate XGM into the code

New turf proc: assume_gas().  Maps to air.adjust_gas_temp().
Lots of optimizations to processing, fire, lighting, HasEntered() and
 more.
Zones now process all fire data and existance in one go, fire objects
 only handle spreading.
Most code has been ported straight so some of it mightn't be ideally
 structured for the new gas_mixtures.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
make gas mask filtering more generic

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
added debugging verb support for gas_data

Updates mod_list() with associative editing support.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Merge pull request #5733 from PsiOmegaDelta/IonLaw

More ion-laws
Merge pull request #5735 from Mloc/bs12-power

XGM gas mixtures
Merge pull request #5732 from PsiOmegaDelta/VentsScrubbers

Vents, scrubbers, freezers, more - OCD
Merge remote-tracking branch 'upstream/dev' into power-net

Conflicts:
	code/ATMOSPHERICS/components/binary_devices/pump.dm
	code/game/machinery/alarm.dm
	code/game/machinery/spaceheater.dm