initial plugin structure, one working plugin
rearranged startup/stop procedure: flask should block till we send it an
interrupt
working plugin structure, explicitly define handlers. first version of quotes plugin
use space instead of colon as command separator, correctly detect non existing quotes
 - add search quotes (sq) command
 - neat check for 'no quotes found'
 - minor cosmetic
escape input properly
move http-json from core tech to plugin
loading plugins moved to method instead of magic hackiness in plugins/__init__
ignore messages from MUC rooms that are from us
add http-json plugin: core creep tech as a plugin
removed erroneous imports
refactor plugin loading
we don't want to reply to all messages in chatrooms: only reply when
messages start with an exclamation mark. direct messages don't require
an exclamation mark
shutdown system:
 - plugins are loaded and registered separately
 - shutdown hook in place so that plugins can shutdown gracefully
 - replaced thread in http-json with process. not super pretty but will
   shutdown flask
 - quotes plugin initializes db connection on startup, shares connection
   with lock. closes on shutdown
nasty temp fix: 'as previously said on' messages from chatrooms don't have a resource
ignore .db files
rewrite httpserver to BaseHTTPServer, as this gives us finegrained
control over threading.

Plugin listens for poison: 'keep_running', after which it terminates.
shutdown hook poisons thread, after which it fires a 'dummie final'
request to allow thread to die gracefully.
refactor: creep gets it's own class, start from app.py
cosmetics: rename conn to xmpp
refactor plugin loading, in core creep class now
replace xmpl crap poisoning with proper urllib2 call
methods that shouldn't be used outside plugin should be private