pAI messenger bugfix.

pAI has to be a special little snowflake and have it's own messenger proc instead of letting a AI-PDA handle it.

So, updated it with the newest tnote variable functionality so it can participate.
Code effeciency project: Sun datum

Because of the wrong direction of this sign, every single solar array was being checked for occlusion every tick.

This should fix that right up.

Trackers set to update their angle only when the sun does.

Solar panels set to calculate occlusion every minute (was every tick (though thought to be set to every 6 minutes (36 degrees)), now checks every 6 degrees of sun movement or so)
People in lobby won't see PDA messages.
Code effeciency project: handle_embedded_objects

Before:  EVERYTIME someone moved their character this proc would be called and loop through every organ looking for implanted items to see if it needs to apply damage.

After:  We create a flag that is set when an item embeddes, only when that flag is set do we do that loop through organs upon movement.  Also every 10 ticks while that flag
is set we will check to see if we need to unset it.

Conflicts:
	code/modules/mob/living/carbon/human/human_damage.dm
Bugfix:  AI Camera light toggle

Fixes #3676

Before:  Toggling would get stuck where it wouldn't toggle the camera until you reset your view.

After:  Camera light toggles, you have to toggle off before turning on a new camera light though.
Fix for unpinning humans.
Fix for unlocking exploit.
using a welder with already damaged eyes no longer causes you to go blind
Conflicts:
	code/game/objects/items/weapons/tools.dm
Fixes #4306 (When a head goes into cryo storage during Rev, a random crewmember is chosen as a target instead.)

Conflicts:
	code/game/machinery/cryopod.dm
Discovered/fixed a division by zero error for standing on the supermatter core.
Fixes #3907
Telebaton now only stuns if it actually hits.
Changed world loop to all_objective loop in cryopod check. Added all_objective add/remove procs to datum/objective.

Conflicts:
	code/game/machinery/cryopod.dm
fixed unfinished merge
Fix item drop layer bug

Similar to the handcuff resisting layer bug.

When removing an item from your inventory that has associated inventory slots, items that were dropped from the extra inventory slots would be dropped with incorrect layer variables (set to 20 so they were rendered over the UI).
Now when the extra items are dropped, it calls the drop_from_inventory() proc, which correctly changes their layer back.
Fix handcuff resist - layer bug

Fixes #4324

Resisting out of handcuffs was leaving the handcuffs layer set to 20 (over top of the UI).
Changed it to use the drop_from_inventory() proc so it handles the drop event correctly.
RP-revconvert bugfix

Now only humans that are logged in, alive, and not already a revolutionary (no special_role) show up in the list.
Instead of EVERY mob type (simple_animals, borgs, etc.)
Merge pull request #160 from alex-gh/bs12_fixes_optimizations

Fixes and optimizations cherry picked from BS12