MTP: Switch to version based checks for new libmtp features.
MTP: Refactor read path in preparation for supporting normal files.

The existing logic for reading only works for preview icons, but
I'm about to add support for reading normal files using special
MTP calls. For that, we need the read calls to work for both cases.

To achieve that, we need to make reading more stateful.
WIP: Use android extensions to support in place read of files.

Allows for opening files directly on the device and reading from them.
WIP: Use android extensions to support in place write to files.

Allows for opening files directly on the device and writing to them.
WIP: Use normal filenames in paths.

It's becoming too fragile to use item IDs as path elements. Beyond
the problems with clients that don't use copy names, there are a
bunch of situtations where a path sent by a client could be an id
or a filename and it's not 100% possible to tell them apart.

When the initial feature set of very limited, this wasn't much
of an issue, but with direct read/write support, we are now
exposed to a huge set of clients (as opposed to just file managers)
with no ability to recognise copy names, and which generate a lot
of mixed form paths, so we're past the tipping point where it's now
less of a hassle to maintain a name to id mapping.
WIP: When removing cache entries, remove children too.

If a directory is deleted or renamed, everything inside it has to
be invalidated in the cache too. The simplest way to do this is
to remove by string prefix match. This will remove too many entries
if there are filenames that match the prefix but aren't actually
children. This is ok as the cache will be repopulated as needed
and operations that invalidate the cache are infrequent.
MTP: Clear previous cache entries when refreshing a directory.
MTP: Clear cache and emit delete events when an object is removed.

If an object is reported as removed by the device, remove it from
the cache and emit a delete event for it.
Backport: Fix hopelessly short timeout in file transfers.

The client code was using the default 25 second timeout for
file transfer operations, which is far too short.

This is fixed in 1.15.x
Ubuntu: Shared libgvfscommon

This is needed to allow built binaries to be drop-in replacements
on an Ubuntu system.