forgetShader function
Takes handle out of handles if it is still the one kept under its
name — the release most libraries hand wrapShader. A library that
frees a backend object as well does so beside it.
Implementation
void forgetShader(Map<String, ShaderHandle?> handles, ShaderHandle handle) {
if (identical(handles[handle.name], handle)) handles.remove(handle.name);
}