Add a new global function to control ocl binary storage

Previously the feature is controlled by setBinpath implicitly.
We add the function to cope with setBinpath and setBinpath is only
useful when setBinaryDiskCache is set.
Refer to the header to see more info.
Use anonymous enumerations instead of constants
Fix a bug caused by NDEBUG macro; it is now removed.
Revise some descriptions of the enums.
Merge pull request #969 from pengx17:2.4_binary_cache