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
Code effeciency project: apc update_icons

Before:  It updated the icons quite a bit at the start of the game.

After:  It updates more often and quicker, but now it isn't as expensive

Conflicts:
	code/modules/power/apc.dm
Supermatter will stop processing when it's in space.

Conflicts:
	code/modules/supermatter/supermatter.dm
Code effeciency project:  Canister icon updates

Before:  If a canister is hooked up to a connector port it's icons were being deleted and recreated every tick.

After:  We store an update_flag that is a bitfield of the current icon and overlay states, and created a proc to check if it should change.  If not, we don't mess with icons.  Real simple.

Conflicts:
	code/game/machinery/atmoalter/canister.dm
Code effeciency project: /proc/get_mobs_in_view

Before:  Everytime you say something. This proc is ran.  Along with it, recurses through EVERY /obj/ & /mob/ in view's contents, and EVERY /obj/ & /mob/ in that contents...and once again.

After:  Fuck recursion, we're going to loop through clients and see if they are within any obj's or mobs within one iteration.  MUCH cheaper, and probably less buggy.

If someone can't hear everyone and they are within an object and it's not catching?  add it to the list commented for it of type checks.
This is rather ironic...

My VERY FIRST PR, I used it to make ghost chat be bold, instead of using viewers() to figure out
what ghosts could see the mob, I used get_mob_in_view() which sounded pretty descriptive.

Unfortunately for me it was one of the most CPU intensive ways of determining who could view the speaker for this.

So yeah, removing the second get_mobs_in_view and replacing it with viewers()

Yes this code has been in since Oct/Nov time frame :(
pAI / MMI emote fixes.

Fixes #4191
Further optimizations, no need to loop through items with multiple istype checks
Unintended feature/bug.

Players viewing through security cameras can hear, this is a bit to powerful.

So removing, it's easy to readd the feature later on.
Vent pump efficiency

- Tweaked the pressure delta check to "> 0.5", so pumps will stop transferring minor volumes of air every tick (because a delta of 3.05176e-005 is still greater than 0). This also reduces the calls to gas_mixture/merge() and gas_mixture/remove() significantly once the air in the environment has equalized.

The results after running the game for 10 minutes:
```
Proc Name												Self CPU	Total CPU	Real Time	Calls
/obj/machinery/atmospherics/unary/vent_pump/process		0.035		0.141		0.141		3808	<- before
/obj/machinery/atmospherics/unary/vent_pump/process		0.014		0.042		0.043		3808	<- after
```
Compile fix / optimizations

Removed client check from mob so that if a pAI is being held by a SSD client it can still hear.

Removed 3rd deep .loc check 2 is plenty, and was making the proc rather expensive
(if you shove a pAI in a bag and toss the bag into a locker, the pAI will be deaf, you jerk).