MTP: Fix leaked weak reference on monitors.

We use a weak reference to automatically clean up the monitor
hash table when monitors are finalized. However, we still need
to remember to remove the weak references when the backend is
itself finalized - otherwise the reference might be fired later
if a monitor happens to get finalized before the backend exits
completely.
MTP: Fix crash when libmtp operations fails without error message.
MTP: Respect remove_source when pulling a file.

This was just an oversight.
WIP: Use android extensions to support in place editing of files.

Current code is read-only. Allows for opening files directly on
the device and reading from them.