[WIP] [DO NOT MERGE] Saycode rewrite

HIGHLIGHTS:
* All atom/movables can talk and hear!
* Hear() proc added to remove shitty typechecking!
* mob/living/say() is no longer a monolith!
* Removal of duplicates, copypasta and typechecks!
* HEAR flag to determine wether things can hear!
* Languages are bitflags instead of typechecks!
* Faster recursive checks!
* ALL and NONE #defines for bitflag convenience!
* Almost all saycode bugs fixed!
* Removal of the unused silicon/decoy type!

Fixed #699 
Fixed #686 
Fixed #333 
Fixed #3347 
Fixed #263 
Fixed #1420
Fixed #149

Fixed #950 (Considering that this is a complete rewrite, it's probably safe to close this issue, and if it were to happen again it could be re-opened)
Any reason not to simply remove the code? Radio code is cluttered as is, so I wouldn't want it to have lots of deadcode hanging around.