Initial commit.

Proof-of-concept implementation on Python.
Handle '-arch' flag correctly.
Initial implementation on C++.

Lock-free thread-pool added.
Gyp-based build system added.
Python implementation removed.
Daemon listens and accepts local messages.

But does nothing special with them - only prints.
Major refactoring of existing code.

Add some unit-tests for the class |Connection|.
Improve the usage of locks in |EpollEventLoop|.
A lot of changes.

Among them are:
  - removal of 'futex' part;
  - removal of lock-free queue;
  - reimplementation of thread pool - a simpler variant;
  - sockets are created non-block and close-on-exec;
  - some protocol adjustments.
Local compilation starts to work.
Present messages as extensions to top-level message.

It allows to make |Connection::Send*()| interface polymorphic -
to compose and send custom messages.
Thread pool now has one unlimited foreground queue,
and one limited background queue.
Refactor protocol one more time.

Also move connection tests to using a test message.
Insert points to be able to use cached results in daemon.
One more refactoring.

Also, fix some problems within the class |Process|.
Implement the caching of compilation results.
Move execution logics to commands.
CC
Implement command for a remote execution.
Fix problem, when connections are not deleted from event pool.
CC.

Convert |typedef| -> |using|.
Remove unnecessary |using|'s.
Use string errors as argument where appropriate.