RFC: Refactor fsay and fact

I'm sorry for not having broken this up into multiple commits, but I couldn't come up with a good way to separate the changes out.