Ports /tg's cable and powernet code to our code base.
Cherry picking breaker box fix.
Adds diagonal cable check on breaker box state change.
Basically ripped over /tg/'s powernet and cable code into our own codebase.

Keeps Z-level code as it was.
Modifies/restores powernet procs as necessary to match our own implementation changes.
/tg/'s solar code with a fix for the solar control computer not refreshing on user input.
Converts all machines relying on RandomAPCWires() to the new wire datum system.
Fixes bad tabbing, only evident when placing Z-crossing cables.
Sets turn-off limits based on a standard cell's max charge
Master controller no longer annihilate powernets, powernets annihilate themselves.

Some misc. changes.
Replaces add_load with draw_power. Issue about silly battery handling remains. Fixes the build-error.
Generalizes the telecommunication reception check.

Also happens to fix a bug where a Detomax could blow up PDAs without reception.
Changes a couple of type checks to access checks.
Moves /obj/machinery/turretid to its own class/file.
Nabs /tg/ support procs and defines.
Moves down target assessment into machinery.
Ports /tg/'s portable turrets.

However, skipping porting /tg/'s projectile system for now. Not going to swallow more than I can chew here.
Replaces the normal turrets with the new porta-turrets.
Fixes a bug with stationary turrets. Removes quotes in path-name to ensure type always exists. Includes code review suggestions.
More precise crew monitor map position.
Merge branch 'dev' into PowerTwo

Conflicts:
	code/modules/power/solar.dm
Merge remote-tracking branch 'upstream/dev' into PortaTurret