Merge pull request #28 from noxiouz/master

resolve cocaine-tool issues
set slave working dir to spool subdir in process isolate
use boost filesystem's native function to set the current working directory
fs::path::native() is not yet implemented in boost 1.40
hanging dtor tilde styling
hanging dtor tilde styling
Properly generate the version number.

The old version #define was treated as a floating-point number, so
that the 'cocaine-runtime -v' command displayed the current version
as 0.1, which was incorrect. Now the version number is made of three
numbers - major, minor and release - which are combined together to
display the effective Cocaine version.
Merge branch 'master' of github.com:cocaine/cocaine-core
Merged chrono and filesystem plugin drivers.

Chrono and filesystem plugins are moved into the core, as they do not
depend on anything except it, so there's no point in keeping them
separate.

Also, recurring timer and drifting timer drivers are refactored into a
simple 'time' driver, because nobody ever used the drifting alternative.
Fixed Clang 3.2 -Wunused-private-field warnings

Clang 3.2 complains on unused private class fields. We build with
-Werror, so now these fields are dropped from the driver classes.
Use the quick exit path on failed execve().

Previously, when an isolate failed to execve() a new worker process, it
terminated the execution of the current forked process with std::exit().
It appeared that because std::exit() invokes the destructors of static,
automatic and thread-local variables, ZeroMQ context object managed to
close its parent process sockets (or do something similiarly bad), which
triggered various asserts in the ZeroMQ core.
Poor man's lambda functions.

Refactored functors a bit to resemble lambda functions more closely.
Does not bring anything useful, only beauty.
Explicitly request the signalfd support in libev.

Since version 3.9, libev doesn't enable signalfd by default, which leads
to strange server behavior as we rely on that functionality. Explicitly
require signalfd in default loop construction now.
Do not force signalfd on older libev versions.

The EVFLAG_SIGNALFD is only defined on newer libev versions, since on
older ones signalfd is enabled by default and it could only be disabled
with a now deprecated EVFLAG_NOSIGFD flag. Conditionally include the
enforcing code now.
Gently handle dying workers with sessions.

When a worker unexpectedly dies while having active sessions, these
sessions must be detached and their clients should have been signalled
with an error condition on their corresponding upstreams.

First, some clients try to immediately reschedule their jobs, but the
current worker is not yet marked as inactive, so these new jobs can land
on this dying worker, if we decide to assign the job on a worker right
away. Mark the worker as inactive before cancelling its sessions.

Second, session is detached before the error handler is called on the
upstream. If the downstream is then closed in the upstream error
handler, then it tries to send 'choke' to a detached session. Detach
streams after the error handling.
Strip libev header inclusion of useless macros.

Some greping around the libev headers revealed that those macro
definitions do exactly nothing at all. Drop them.
Added an ability to disable app caching.

App caching can be disabled by removing the caching storage section from
the configuration file. It will force the server to fetch the manifests,
profiles and app bundles every time from the core storage, which is a
good thing to have during the app development process.
Adapt cocaine-tools for python-framework-0.10.2

Add app:view - show application manifest
Now jsons (manifests, profiles, etc) are pretty printed.
Merge branch 'origin_master'