Refactor dispatcher.py
Cleanup, renaming
concurrency.py: Initial commit

Concurrency.py contains simple gevent based concurrency tools. At the
moment, it only includes an actor class. Actors will eventually replace
some of the functionality that agents currently bring.
applogic.py: The central logic for bots

Much of the logic of a bot program is described in applogic.py. It
doesn't depend on any libraries. All the dependencies are brought to bot
apps via their constructors. app.py will eventually use applogic.py as
its core.
concurrency.py: actor ready support

Actor will read new messages only if ready() method returns True.
Radical changes in core behaviour of kaarmebot.

Atleast I didn't rewrite _everything_ this time...
Here's the full list of changes:

- Agents have been replaced with actors, pools and custom greenlets.
  The agents just became too complicated, and had to be split into
  several classes.

  * DispatcherEngine replaces DispatcherAgent. It's basically a pool
    that maps over dispatcher handlers asynchronously.

  * ClientGreenlet is a simplified version of IrcClientAgent. Much of
    the IrcClientAgent logic exists in applogic.py.

  * ControlAgent is replaced with the code in applogic.py. The agent was
    a stupid idea right from the start, because it did way too many
    things. All the message handling related stuff is located in
    builtin_plugins.py.

- The old BotApp is divided into KaarmeBotApp and the BotApp in
  applogic.py. The new BotApp does all the logic, and KaarmeBotApp
  "injects" all the dependencies.

- Plugins will now receive one parameter instead of two. The parameter
  is a PluginRequest object which includes the original message,
  source of the message, the source settings, the application settings,
  and the plugin settings.

- Plugin management is handled by the PluginManager in plugin.py.

- SimpleTCPLineClient is now a greenlet. It can also have only one
  message and close handler at a time.

- raw_cmd renamed to raw_command. any_cmd renamed to any_command.

- New predicates: Equals, ClientStarted

- Examples updated to match new code.
dispatcher.py: remove add_bindings method
app.py: dispatcher logging

DispatcherEngine can now log the messages it receives. Removed the
DispatcherEngine tests for now.
applogic.py: PluginRequest.settings renamed to app_settings
PEP8 fixes