hash_has_element returns true if the element is in the hash.
OpenGL does not follow a pattern when the program is not generated by OpenGL.
In some cases it returns GL_INVALID_VALUE and other cases it returns GL_INVALID_OPERATION.
Add initial error handling for cache_client_glUniform functions.