removed channel parameter from the callbacks, because this can easily be captured
de-templified the deferred objects, to make them easier to understand for other programmers
the consumer message callback can now also be installed via the Deferred objects, and it is no longer passed a consumer tag, because it already is obvious what the consumer tag is supposed to be
deferred objects are now correctly destructed + added extra checks so that no crashes occur when someone destructs a channel inside a callback function
error callbacks get a const char *, no longer a std::string
when a consumer is cancelled, it is also removed from the map of active consumers in the the ChannelImpl object
refactored dealing with error messages
when an error is detected on a channel, all subsequent and cached deferred objects are notified about the error too
setTimeout function removed from connection handler, the finalize and error callbacks are called right away if installed on an object that already is in an error state
removed some @todo tags
update documentation, error callbacks now get a const char * instead of a std::string