Fixes 'Camera Bug' item and makes it a viable tool.

Camera bug acts as a mini-camera computer with access to all bugged cameras.

Adjusts camera checks to determine who is looking through them; instead of checking their machine, it now checks the client eye.

Adds camera bug to the uplink list with a cost of 2TC.
Splits the camera bug into several different prototypes:
* Vanilla - Sees its own bugs only
* Universal - Sees all bugs
* Networked - Sees all cameras
* Sabotage - Sacrifices a bug to EMP a camera
* Tracker - Lets you monitor who is near a camera and what camera a person is near.  Some limitations.
Combines the prototypes back into one finished camera bug.
Adds an associative list sorter to the helper procs.  This will sort a list while maintaining the key=value structure.
The tracking functions of the camera bug will now auto-refresh if you keep the window open.  The functionality was there but broken previously.  This allows you to creepily stalk someone or observe a sensitive area.

The camera bug is now extensible.  If you add an extension of certain types, the bug will have additional functionality.  A screwdriver will remove the existing extension.  Additionally, an admin/testing version of the camera bug can be created with the research admin spawnable item.

This is not the final version of this code; sane item types for the extensions must be chosen.  I do not have any that are feasible right now.
Final? values for camerabug expansion item types

There wasn't much feedback, so I just threw together something acceptable, not being able to think of anything particularly clever.
- Universal bug: atmos analyzer or subspace analyzer
- Sabotage bug: Igniter, infrared tripwire thing, or subspace amplifier
- Network bug: Radio, signaler, or subspace transmitter
- Advanced bug: Detective scanner, pAI card, or scanning module stock part
Merge remote-tracking branch 'remotes/Sayustation/camerabug' into sayustation-temp
Finishing up
* Adds a box of pet collars to art storage (Metastation)
* Adds a cat crate to cargo
* PL's Nukeops Scaling code compiles now
* Cloaking devices, minor fixes
* Hulks no longer smash tables to create racks
* Apparently my cloaking device commit got smashed, re-added here
* Tables and racks disorganize themselves at round start
* Allow naming goats with the pet collar

Note to self, I accidentally overwrote a small commit and I cannot for the life of me remember what was in it.  If I see things I should have fixed, that may be why.