Direct invocation of user defined handler is replaced with indirect one

Asio handlers for composed operations can have different behavior for Handler::operator() and template <typename Function> void asio_handler_invoke(Function function, Handler*)
(http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/asio_handler_invoke.html and http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/Handler.html).