dnet_upstream_t sends reply/ack back to client in destructor, since it can receive
error or some data. But if there is no application to queue, we return error
and send ack. This second ack is actually the right one, but it is discarded on client.

To fix this issue we postpone upstream creation after we know application exists.
Merge pull request #61 from euroelessar/master

Fixed memory leak at async_result aggregator connection
v2.23.3.0
Made cache exception-free
Removed unused hash_t/key_t
Added cache parallelism
Use c++0x stl, since c++11 is not available on gcc 4.4
session_indexes.hpp cleanup - hide private msgpack kitchen
Use functor name in indexes_unpack() to debug exceptions
More ostream output operators - cleanup and dnet_time
Add -H option to dnet_ioclient

This option make possible to pass key "AS IS", without hashing.
This done by test reasons
Add module_backend implementation

"module_backend" - is a new module type from elliptics.
It is possible to define your own elliptics modules in separate
shared libraries, and load it on start.
Add C++ bindings for module_backend

You can use HonestCommandHandler for straightforward elliptics
handlers, or simplified UncomplicatedHandler. Those classes
interfaces are yet not complete.
Added DNET_FLAGS_CHECKSUM cflag - when set, lookup command will send object checksum
Use correct size/offset in dnet_send_file_info() when checksumming
Added write IO flag, which forces backends not to send file info on write completion
Merge pull request #62 from itroot/module_backend

Add module backend
Merge branch 'master' of github.com:reverbrain/elliptics
Wrap debug line
Fixed potential NULL-pointer dereference in dnet_lookup_object(). If trans was create, use t->cmd.status to hold completion status, even if there was an error