added an option to skip writing back to the cache if the fetch block yielded nil

see unit tests for usage.