Currently attribute names are often added to a hash map that doesn't maintain the original order. This is convenient for developers but it's better for users if attributes aren't arbitrarily reordered. Instead, use `VectorSet` which gives the benefit of a hash map but maintains the insertion order. The main downside is the loss of O(1) removal which we benefited from in a few cases. I used string comparison instead for now. Fixes #144491, #122994 Pull Request: https://projects.blender.org/blender/blender/pulls/145668