Previously we generally expected CustomData layers to have implicit sharing info, but we didn't require it. This PR clarifies that we do require layers with non-null data to have implicit sharing info. This generally makes code simpler because we don't have to have a separate code path for non-shared layers. For example, it makes the "totelem" arguments for layer freeing functions unnecessary, since shared data knows how to free itself. Those arguments are removed in this PR. Pull Request: https://projects.blender.org/blender/blender/pulls/134578