the PDA and Desk Bell update (part 1)

![update](https://cloud.githubusercontent.com/assets/7573912/5272692/73443a38-7a7f-11e4-8c79-7fd2589f754a.gif)

It all started with an idea I had while working on the Adminbus, a bell at the HoP's desk that would ring his PDA. I discusses the idea in the thread and people suggested that other jobs should have similar bells, then I got the idea of PDA apps to manage all that. Little did I know at the beginning that I'd code all that. On the bright side, I have made peace with nanoUI.

I'll wait until the current map change PRs get dealt with before pushing the part 2 (which is all map changes).

* Added Desk Bells. Built of metal, coil, and optionally a remote signalling device. You can use a pen on the assembly to name it.
* Can be anchored with a wrench. Can be picked up by drag and dropping it onto yourself (like paper bins)
* Clicking it will make a noise, and if has a remote signalling device, it'll emit a signal of the designated Frequency and Code.
* Desk Bells have a delay of 2 seconds before you can press them again.
* If the remote signalling device's code was 30 (default), the signal will only be read by the Ringer apps of PDAs.
* Added PDA apps. Did all the framework so that future apps can be easily added.
* Ringer app. You can toggle it on/off and change it's frequency. You'll be notified any time someone press a Desk Bell with a signaller set on the same frequency. The notification includes a noise, and the name of the Desk Bell.
* Flashlight Enhancer app. Increases the PDA flashlight's luminosity from 2 to 3.
* Spam Filter app. Can be set to either block the spam, conceal it (so it won't beep your PDA nor show you the message on the chat window), or do nothing.
* Balance Checking app. Lets you check the current funds of the account linked to the inserted ID, as well as its transaction history.
* Added a new computer. PDA Terminal. The board can be printed at R&D with data=3
* PDA apps can be purchased at a PDA Terminal by inserting your PDA, and having enough funds on your ID (which can be either on yourself or inside the inserted PDA)
* You can also purchase a new PDA at the terminal for 100$ (with a chance of getting a Limited Edition transparent PDA)
* The AI/pAI/Borg's PDAs have the Spam Filter app installed by default.
* The Detective's PDA has the Flashlight enhancer app by default.
* The HoP and the Detective's PDAs have the Balance Checking app by default.
* The Sec Officers, the Warden, The HoS, the Scientists, the RD, the Medical Doctors, the CMO, and the HoP, all have the Ringer app by default on their PDA, with its frequency set to that of their respective desk bells (those desk bells will be placed at roundstart whenever I can make the map changes)
* The captain's PDA has all the apps by default because why not.

bonus unrelated stuff
* using a wrench or an unlit welder on a reinforced (not weakened) table will now actually place the tool on it, rather than doing nothing
* purchasing from either a vending machine or the PDA terminal will now display his remaining balance to the purchaser.

Illustrations:
empty PDA
![1](https://cloud.githubusercontent.com/assets/7573912/5272137/5e796a4c-7a7a-11e4-9b99-2c774834a688.png)

PDA Terminal menu (my first nanoUI, yay)
![2](https://cloud.githubusercontent.com/assets/7573912/5272143/6d24a4b2-7a7a-11e4-9a18-76cf521d60a5.png)

The user knows how much money he has left after each transactions.
![3](https://cloud.githubusercontent.com/assets/7573912/5272149/7bd8eb76-7a7a-11e4-9206-e2b0c23e0dc6.png)

Balance Checking app
![4](https://cloud.githubusercontent.com/assets/7573912/5272164/9e2463a4-7a7a-11e4-9e16-4bf1e8accebd.png)

PDA Flashlight Enhancer app
![5](https://cloud.githubusercontent.com/assets/7573912/5272170/a8149870-7a7a-11e4-9301-b9229d3273cd.png)

Desk Bell at the HoP's desk
![6](https://cloud.githubusercontent.com/assets/7573912/5272188/cc11162c-7a7a-11e4-8ca5-0c4f15a00668.png)

Using the Desk Bells to trigger various Remote Signalling Devices
http://i.4cdn.org/vg/1417525228072.webm

The future of entertainment
![8](https://cloud.githubusercontent.com/assets/7573912/5272217/0c404614-7a7b-11e4-8e7e-3efa6c5a494c.gif)

ie put something like this around it:
```dm
if(src.busy) return
else src.busy = 1
...
src.busy = 0
```
And something like this after the ```do_after()```:
```dm
if(src && user && user.Adjacent(src))
```