Merge pull request #47 from ddemidov/multiple-objects

Fix linkage problem with detail::getenv()
Merge pull request #46 from ddemidov/offline-cache

Use the original program source for program creation/compilation
Use SHA1 for online cache keys

This makes online cache use sha1 of the program source as key.
Introduces boost::compute::detail::sha1() function, which is moved
from compute::program into its own header file.