This patch would localize external files when appending assets.
Localizing external files would make a local copy of a Image, Sound, or other
external stored file.
Only files that are not packed would be localized and are relative.
This patch contains only supports Single image files, but contains the machinery
to be easily extended.
#Implementation details
Before localizing an asset `BKE_external_files_create` is invoked. This function
creates a struct containing the original paths to the external files that needs
to be localized. It uses the newly added `IDTypeInfo.foreach_external_file` callback.
This callback goes over each external file for a given ID.
This patch only provides this for the `Image` id.
After localizing the asset `BKE_external_files_localize` is invoked. This function reuses
the `BKE_packedfiles` logic to copy the files over to the current file.
#Known Issues in patch
* [ ] Move specific code from external_files to packedfile.
#Known Issues to be solved when global implementation is agreed upon.
* [ ] Add support for Image Sequences.
* [ ] Add support for Tiled images.