task-cache: Allow NULL as value_copy_func and value_destroy_func
This makes it convenient to use raw gpointers as values. eg., when stuffing booleans and integer values as pointers in the cache.
This makes it convenient to use raw gpointers as values. eg., when stuffing booleans and integer values as pointers in the cache.