Allow alternative prefixes

This commit introduces the new config options BOT_ALT_PREFIXES,
BOT_ALT_PREFIX_SEPARATORS and BOT_ALT_PREFIX_CASEINSENSITIVE.

These options allow the specification of alternative prefixes the bot
will listen and respond to, allowing bot commands like 'Err: status' or
'Err, status' if 'Err' is defined as an alternative prefix.

This code borrows heavily[1] from code written by John Hogenmiller[2]
Thank you John! Please see issue #85 [3] for the history that led up to
this.

[1]: https://github.com/gbin/err/pull/87/commits
[2]: https://github.com/ytjohn
[3]: https://github.com/gbin/err/issues/85
Remove unused import
made a simple script to run the tests
IRC Backend now transmits to appropriately

This change also casts strings from IRC to unicode for the body, to and
from field to appease TimeMachine and Whoosh's need for unicode strings.
Merge pull request #94 from achew22/fix_irc

IRC Backend now transmits to appropriately
More encoding fixes
Merge pull request #95 from achew22/fix_irc_encoding_take_2

More encoding fixes
added optional configs for rate limiting in IRC
support for @ in the xmpp nodes
Add err-insult to repos
Fix "AttributeError: JID instance has no attribute '__len__'"

This fixes #96
Revert "Fix "AttributeError: JID instance has no attribute '__len__'""

This reverts commit 082d95fdb4878936332abe5102ce046cbb602214, which
caused a regression with template rendering:

TypeError: render() argument after ** must be a mapping, not str
Fix "AttributeError: JID instance has no attribute '__len__'"

This fixes #96. Hopefully without any further regressions this time :)
implements str on message
better from/room parsing for IRC backend
corrected the reply to private for the IRC backend
fake test backend + associated tests
made the tests more robusts and repeatable

Corected already a couple bugs
dynamically generate a mock for the config in the unit tests
mock even earlier the config