Instead of storing the active bone collection as `BoneCollection*`, store
its name in DNA. This makes it impossible to point to non-owned bone
collections, makes it easier to handle copy-on-write copies, and should
make it possible to use library overrides on it.
This now also introduces a new requirement that bone collections always
have a name. If the name is set to the empty string, the default name
("Bones") will be used instead.
The `active_collection` pointer is still there for ease of access, but
it's been moved to the armature's `runtime` property.
The library overrides part isn't working yet, though.