This is in preparation for eventual hierarchical bone collections.
The motivation here is that we want to continue to store collections
in a flat list, for forwards compatibility with Blender 4.0. However,
we would like to specify children as a lightweight index range, and that
becomes fairly inefficient with a listbase due to the list traversal
overhead incurred for index-based lookups.
As a compromise, we're still saving to disk as a list base for forwards
compatibility of blend files, but storing as an array at runtime for
efficient indexing.