Merge pull request #123 from 3Hren/master

Taking const reference of temporary object doesn't look good.
Boost ASIO.
[ASIO] Asynchronous actions unification.
[Locator] Cluster topology reports.
[Node] Simplified Node service API.

Removed bulk operations to simplify error reporting. These are not performance-critical
operations, so one-after-one approach seems better here.
[API] A new shiny client.
[Locator] Asynchronous locator remote linking.
[General] Support for cocaine::result_of<Lambda>.
[RPC] Dispatch discarsion.
[ASIO] Dynamic load balancing for I/O pool.
[RPC] Fixed dispatch to actually be thread-safe.
[Context] Exposed the Port Mapping API.
[Logging] Emit message is a terminal message now.
[RPC] Separate graphs for dispatch & upstream.
[Locator] Allow updating multiple groups at once.
[S11N] Proper exceptions when unpacking tuples.
[Locator] Validate remote node UUIDs.
[Gateway] Means to specify local-only services.

Local-only services are not being announced to remote nodes. The Locator service is always
restricted.
[Node] Make it compilable with `boost::asio`.

 * Node service and all underlying stuff (app service, engine, and slave) have got rid of libev, and now work with `boost::asio`.
 * Node's info method is now asynchronous.
 * Engine now fully controls its own thread, where the event loop runs.
 * There is no more unix-socket communication between application owner class and its engine. Info method is now called directly, but it is asynchronous and thread-safe.
 * More debug logging added.
 * Slave's session caching via message_queue<T> adapter.
 * Event's deadlines via std::chrono.
Merge pull request #130 from cocaine/boost-asio

ASIO