Two create calls (e.g. to wgpuCreateBindGroupLayout) may return the same pointer. We should document this so that people are aware if trying to use them as map keys, or something.
I think we can specify exactly which objects may be deduplicated (instance?, bind group, bind group layout, pipeline layout, shader module, render/compute pipeline, sampler, texture view) and which can't be (adapter?, device, queue?, buffer, texture, queryset, encoders / passes / command buffers / render bundles).
See also #167