refactor 'dir = ' into 'set_dir()'

This should have little/no gameplay effect right now, just paving the
 way for directional lights.
Replaced handle_rotation() on buckly things with this.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Cameras can be broken by weapons/projectiles, fixes

Fixes being able to show papers to AIs through deactivated cameras.
Fixes being able to break doors with TOX, OXY, and CLONE damage.
Fixes camera alarms persisting after the camera is deleted.
Fixes #7021.
Some camera cleanup.
Fixes portable turret ex_act()

Class 3 is the least severe, not the most.