Offline cache for compiled kernels

vex::build_sources() dumps compiled program binaries to filesystem.
These are automatically reused in subsequent program launches. Binaries
are stored in ~/.vexcl on Linux and in %APPDATA%/vexcl on Windows. File
names are SHA1 hashes of concatenated sourses, device name and platform,
and compile options.

The caching results on drop of time for running all tests (on AMD
platform) from 34 to 2 seconds.  However this could also result in some
unforseen problems, so this is disabled by default. In order to enable
offline kernel caching, user has to define VEXCL_CACHE_KERNELS
preprocessor macro.

Note that this does not affect online kernel caching, which is always
enabled.