airalarm exploit fixes

airalarm had various checks missing, e.g. making sure the AA
was unlocked before triggering panicsyphon and the like.

added proper rangecheck, added var checks for the different types of calls.

also replaced usr.machine = src with usr.set_machine(src) so the
window updates properly for silicon mobs using the machine from afar.

i had no time to look for functionality exploits, this commit merely makes sure
the commands can only be called in proper circumstances.
Merge pull request #5095 from Walter0o/AA_exploit

airalarm exploit fixes