Adding support for packed IDs in the PartialWriteContext was completely
missed in initial work...
This somewhat complexifies the handling of libraries in
PartialWriteContext, as packed IDs need to be handled in specific ways.
It also exposes `bke::library::ensure_archive_library` as a public function,
to avoid duplicating this complex logic of finding or creating a new
archive library for a given ID.
Finally, prevent attempts to copy a packed ID for now, as pasting them
is not supported (linking/appending these directly is not supported).
Pull Request: https://projects.blender.org/blender/blender/pulls/147468