APC/airlocks/alarms fixes

* Fixes the duplication exploit of APC and air alarm electrionics. Fixes #4989 .
* Fixes success message spam: when crowbaring electronics or other procedures in APC/Alarms/airlock/door_assembly, click spamming the src X times will no longer give X 'success' messages. (it also fixes a runtime error due to clickspamming when cutting wires of an APC terminal)
* Trying to install two electronics at the same time in a door assembly no longer deletes one of the two.
* Replaces "sleep()" with "do_after()" for fire alarm electronics removal procedure so you can no longer leave during the waiting period.
* Span class changes: replacing "danger" by "warning" in those procedures when there's no danger involved.
* Procedures consistency fix: all these procedures with a duration now have a visible 'initial' message for third parties w/ "warning" span class (3rd parties need to be alerted before the action is over, not after). For the user, the initial 'trying' msg is standardised to no span class, and success msg uses 'notice'.
* Adding a couple 'self_message' to some visible_message() proc.
* replacing for(in view())+show_message by visible_message in a few instances
* Deaf people no longer hear bolt toggling clicksound.