Direct invocation of user defined handler is replaced with Asio's one indirect

Asio handlers for composed operations can has different behavior for Hadnler::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).