Implement a process-local VFS to enable grouping together arbitrary
URIs passed via program arguments, DnD, or the file open dialog.
This VFS contains FivCollectionFile objects, which act as "simple"
proxies over arbitrary GFiles. Their true URIs may be retrieved
through the "standard::target-uri" attribute, in a similar way to
GVfs's "recent" and "trash" backends.
(The main reason we proxy rather than just hackishly return foreign
GFiles from the VFS is that loading them would switch the current
directory, and break iteration as a result.
We could also keep the collection outside of GVfs, but that would
result in considerable special-casing, and the author wouldn't gain
intimate knowledge of GIO.)
There is no perceived need to keep old collections when opening
new ones, so we simply change and reload the contents when needed.
Similarly, there is no intention to make the VFS writeable.
The process-locality of this and other URI schemes has proven to be
rather annoying when passing files to other applications,
however most of the resulting complexity appears to be essential
rather than accidental.
Note that the GTK+ file chooser widget is retarded, and doesn't
recognize URIs that lack the authority part in the location bar.
Now SIMD works on amd64, although the build remains questionable,
because it assumes that all of its compiler flags will work.
This way we lose an uncomfortable git submodule.
Also, add Meson subprojects to .gitignore.
There is no point in claiming speed, it turns out to be a strange focus
to have, considering the amount of available innovations to make.
The new name does not appear to be taken by anything important.
The gdk-pixbuf plugin does not work here, for whatever reason.
Moreover, close integration exposes higher bit depths, metadata,
and auxiliary images.
The library is awful and copylefted, but it's the only reasonable
thing that works.
Sadly, they don't have a canonical extension, and they don't show up
in the browser. We might want to employ some level of sniffing.
The first 16 bytes are enough to identify a lot.
Speed matters here, and this makes us about 20 percent faster
at loading large directories.
Moreover, libpng's PNG_ALPHA_BROKEN is indeed broken.
Thumbnails have a fairly fixed format, so there are very few practical
corner cases that could have been missed.
We need to refactor, so that SVGs are pre-rendered on each change
of scaling by librsvg directly, because some elements may be rasterized.
It would be best to also support building against resvg.