Cleans up laser pointer code a bit
Makes it so having TOO STRONG of a laser won't break it
Makes it so laser pointering someone without eyes doesn't return early and break the entire chain
Makes it so that being blind (or otherwise unable to see) makes it so you can't uber blind someone
Makes it so that using a laser pointer (no matter the strength) on someone with FLASH_PROTECTION_MAJOR (dispersed eyes, welding goggles, welding mask, etc) does not affect them
Fixes a bug where lasers that were too strong would fail to EMP a camera due to division by 0 error.
Gets rid of the double-RNG with laser pointers when it comes to hitting a camera.
* Laser pointers
Adds laser pointers, ported from tg/oldaurora (but heavily modified). They can be found in the loadout, as well as made by science. Science can also upgrade them, which makes them occasionally useful for blinding people, too.
The bugfixes which make several of the features work properly will come in a separate commit.
* Three fixes
Cats now have resting sprites for all 4 directions, instead of just east. This was needed to make cats look like they're pouncing on the laser dot.
Cameras can now be EMPed more than once, and EMPs actually are able to disable them now. This was needed for the shining lasers into cameras feature.
Flash_eyes() now actually displays a flashing animation on your screen when you get flashed (except for silicons, who for some reason are excluded from this unless EMPed). This was needed for laser pointers to have a temporary "blinding" effect when shone into someone's eyes.
(removes errant debug message too, whoops)
* Nerf
Reduced chances of laser pointers doing anything useful on silicons.
Also, fixes a duplicated proc, oops.
* Requested changes
Minor changes as requested - 'cell' to 'diode', view() to viewers(), range() to viewers().
Stops buckled or dead cats from reacting to laser pointers. Zombie cats are fun, but no.
Also, does another small nerf to the effects on silicons.