[READY] 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 #1705 
Fixed #1254 

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)

Here is what rewriting saycode was like:

![](https://i.imgur.com/t0XHtgJ.gif)

I'm just trying to make the code less opaque to people new to it.