In case of miss, compile already preprocessed files.

TODO: make this feature optional, since seems in some cases it
slowdowns compilation.
First implementation of direct mode

In this mode we store list of includes in manifest file, to avoid
preprocessing in case of cache hit. We'll only re-hash all source files
and all includes in that case.
Allow disabling "single preprocessing" mode with CLCACHE_CPP2 env. var
Add workaround for source files with #line directives.

Such files may be generated by some code-generation tools.
Add support for CLCACHE_BASEDIR variable.

Need to allow cache hits in direct mode when compiling from different
directory.
Remove objects during manifest cleaning.

We'll be unable to access them after they're gone from manifest.
Add support for using Windows hard links instead of file copyings.

Controlled by CLCACHE_HARDLINK environment variable.
Fix nasty bug with not using file hash when computing object name.

Caused collisions when two files used the same set of includes.
Use cmd line when computing hash for obj files, not only for manifests.

Need to avoid conflicts when the same file is compiled with different
settings.
Properly increment misses counter.

We don't want to give up using it completely to allow backward
compatibility with statistics, generated by previous script versions.
Fix not properly computed cachekey.

Old computation caused collisions in some cases.
Fix typo
Fix symlinks creation when re-compiling to existing object file.
Implement cache trimming when user sets smaller soize of cache.
Fix crash when some header changed to stop using some another header.
Use Win32 named mutex instead of file lock.

Need to avoid problems when clcache incorrectly terminated (e.g.
by process killing). In that case lock file may remain in the file
system and will not allow other instances of clache start.
Also, mutex should work a bit faster, since we eliminate disk and
filesystem access.
Extract main() function to ease script testing
Initial implementation of daemon infrastructure from python side.
First working implementatino of building through cacodaemons.

Without caching yet. Needs a refactoring.
Implement caching file hashes and compiler paths.

Fix some errors with not properly set env. variables when compiling
through daemon.