Added widhash function to simplify word => wid
Reimplemented random speech, fixed say

Random speech is now done separately from logging and processing. This
gives a decent speed boost to both of those two processes. However,
there's still a concern with the count(*)'s going on in speech
generation that are slowing everything down.