Refactor fsay and fact

I should probably have separated this out into multiple commits, but I really can't come up with something that would be much better.

**Changes**

- Make the date format a bit easier to read
- Log full hostmask (`nick (user@host)`) to prevent people from tricking the logs
- Improve some messages
- Use a single wrapper function to avoid code duplication
- Refactor code to have consistent style

If I missed anything in the changelog above, feel free to point it out and/or edit it.