Implement BotPreQuitEvent

This affects #40.

BotPreQuitEvents provides an interface to override the quit message the bot will use. This implementation also adds supports for empty quits (as opposed to "Quit: ").