docstring adjustment
added !unicode as alias for !chr
fixed bug due to events going to unloaded plugins

if an event triggers a plugin to be unloaded or reloaded, and the plugin
is listening for that same event, then it is possible for the plugin to
get the event after it has been unloaded or reloaded. This change in the
transport layer checks to see if a plugin has been unloaded before
sending it an event.

Note that the plugin *could* still get an event that also triggers its
own unloading. It depends on the iteration order of the plugins. This
change only ensures that if it *does* get called, the plugin has not
(yet) been unload
fixed bug triggered by exceptions in start()

if a plugin raises an exception in start(), it may have already added
some hooks in the transport object. This change ensures all hooks are
unloaded if an error in start() occurs
added voice of the day plugin. Mostly tested. Seems to work.
Merge remote-tracking branch 'origin/master'
track nick changes for votd unvoicing
changed no-such-user message for bans and quiets
added a basic gitignore
added a !transfer command for votd
changed how votd winners are computed

Before, each line said would put the user's name into the drawing, with
each line having equal weight (one entry in the drawing). After a
drawing, entries are cleared.

Now: entries are halved after a drawing instead of cleared completely.
Also, when a user wins, a multiplication factor (which defaults to 1) is
multiplied by a twentith. This factor is multiplied by their number of
lines in subsequent drawings to get their number of entries. Each day
they don't win, every user's multiplication factor is doubled, maxing
out at 1.
changes to temperature conversion logic

now omits converting temperatures if it sees keywords related to
capacitors
added exception handlers around plugin calls

If a plugin handler raises an exception, it would propagate all the way
back to twisted and prevent the transport layer from calling any other
parameters. In the worst case, this prevented me from running a !plugin
reload because the buggy plugin was erroring before the plugin reloader
was getting that line.

Now all exceptions are caught at the transport layer and ignored, after
printing a traceback to the console.
event watcher mixin committed. untested.
removed default permissions from permission list in whoami command
various tweaks to the votd algorithms
don't disqualify current voice from drawings

(the odds do that already)
set an encoding on this log msg
added an !odds command to check votd odds
added "mute" and "unmute" as an alias for quiet