Limit maximum number of program_cache instances

This limits the maximum number of program_cache instances to eight
using an LRU cache. This prevents potential CL_OUT_OF_RESOURCES
errors when creating and using many different context objects.