Added support for using hard links instead of copying cached results

Using hard links is potentially more efficient (makes build use less
disk space, and avoids shoving bytes around), but there's a downside
to it:

1. All hardlinks pointing to the same object file share the same
modification time. So when reusing a cached file, we bump the
modification time to make it look as if the object file was really
newly created. This changes the modification time for all other
hardlinks as well though, which may or may not confuse build
systems.

2. It's more likely that the cached object gets corrupted since there
are more ways to access it.

Hence, I decided to make this feature opt-in: you have to set a
CLCACHE_HARDLINK environment variable to enable this feature.

That aside, it seems to work quite well for me and gets the build
time of one of my projects down from 7 minutes to 6:30. This code
is based on a patch by Vyacheslav Chigrin <vchigrin@yandex-team.ru>.