Fixes #1147 - type-mismatch

Added helper: /proc/findchar(haystack, needles, start=1, end=0)
works like findtext except it finds the first occurrence of one of the characters from the needles string, within haystack.

Permissions can now be removed as well as added, by replacing the + with a -. e.g. +BAN adds bans permissions, -BAN removes them. This applies to admin_ranks.txt and the permissions panel.

Verb overrides are now possible for admins_ranks. Specific verbs can be forced-on, or forced-off via keywords like +/client/proc/mimespeak or -/client/verb/ooc. This applies both to admin_ranks.txt and the permissions panel. SQL system is not compatible.

admin_ranks are now datums. This means admin_ranks actually behave more like permission groups as intended.
When you temporarily modify an admin's permissions via the permissions panel, their rank_name is appended with "([ckey])". This prevents modifications to their rights affecting everyone.

admin rank names now support - _ and @ characters (since ckeyEx() does not strip these).

SQL permissions system was modified. SQL databases will have to be updated or they will no longer work.

WARNING: admin_ranks.txt and admins.txt format has changed slightly! You will need to redo those txt files!
Replaces the default gunshot sound effect with four higher quality ones. Replaces the laser sound effect with an arguably better one.
Adds a new sound effect for silenced weapons.
Reverts the laser sound effect to the earsore we've all grown used to
PDA Painter Machine
-Adds the PDA painter, which lets you change the appearance of the inserted PDA. Good for job-changes and possibly traitor disguises?
-Cleans up pda.dmi, moves the ai card and pai device sprites to their own .dmi. PDA box sprite moved to storage.dmi where it belongs.
Moving a check so the color choice window doesnt pop up if there's no power
Added the voice analyzer from #581 to the autolathe and assistant vending machine.
Added a space hotel away mission map.
makes my code more good
adds a parent call in the new()
Merge branch 'master' of https://github.com/tgstation/-tg-station into addvoiceanalyzer

Conflicts:
	html/changelog.html resolved using their entire file
Fixes lethal cryo.  Cryo was offgassing too much without activating its turf, this fix prevents lethal buildup of oxygen.
Alphabetized emote code and added help emotes to borgs and slimes

Also fixed erroneous view calls
Merge pull request #1215 from JJRcop/emotes-help

Prettified emote code, added "*help" to cyborg and slime
Merge pull request #1191 from Cheridan/PDA

PDA Painter Machine
Merge pull request #1211 from dumpdavidson/addvoiceanalyzer

Added the voice analyzer from #581 to the autolathe and assistant vendin...
Adds critter crates

Fixed several conflicts present in last pull request, should be fine
now.

All animals ordered through cargo will arrive in critter crates. These
crates are designed for the safe transport of animals. Critter crates
can only be unlocked from the outside and automatically lock when
closed. You can resist your way out of the crates. Critter crates are
counted as normal crates when sent back to CentComm.

Adds cat crate (cost: 40 points).

Corgi crate now has a 50-50% chance of either containing a male or
female corgi.
Moves critter crate sprites from storage.dmi to closet.dmi.

Removes redundant large animal crates.
Adds missing pug icon states, adds some misc pug behaviour stuff

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
Muzzle and spear sprites fixed.
Fixes attached voice analysers not listening

The voice analyser will listen to the keyword now even when not secured
(enabling it to be directly used on grenade casings and tank transfer
valves).

Adds missing related proc to tank transfer valve.