Updated README.md
Started a complete rewrite...

Replaced dynamic polymorphism with static one. Instead of
bind operation, operator >= is now used (Couldn't have used
operator >>= because that one is right associative so something
like this (m >>= f >>= f) would not make sense as (f >>= f)
is not defined.

Only the core.cpp passes now though.
Switched to using union instead of boost::variant

Cpp now compiles ~500ms faster
Rest of the tests are now passing
Adds 'task' class for storing tasks in variables
Canceler is now passed by reference
Renamed 'sleep' -> 'wait' and refactored it

It no longer takes a handler as an argument (was unnecessary).
Adds sequence '>>' operator
'post' no longer accepts a handler as an argument

Was unnecessary
Cancelation status now only checked in tasks which post to io_service
Adds 'forever' task and a test for it
Adds 'pause' task.

And a kicker class for it.
Updated README.md
Adds 'accept', 'connect' and 'send' tasks
Adds 'receive' task

And a test for sending and receiving
Adds test for cancelling connect action
Adds 'resolve' action
Switched from '>>' to '>' for the sequence operator

Because '>' and '>=' have the same precedence.
The '>=' and '>' operators are no longer global templates

But every one of the task monads inherits from another
'monad' template which injects those operators in it.
Adds a proof of concept chat_client example

Works with the chat client and server from Boost.Asio