Mtp: avoid aborting thread while using libmtp (bgo#724730)

While the change in 37cb8a36f0a5884936fde0c84e7a9da87d19794a
was desirable to avoid misleading exceptions being thrown, it
exposed a situation that could not happen before that change:
the load thread being aborted in the middle of a libmtp access
(mtp_device field usage), because before that change, the load
thread would just be aborted when trying to access a null lock
(which means, the thread could only aborted outside when
running outside the mtp_device lock, which was more desirable).

In order to avoid this situation, we can make the DapSource
parent class hook on its child's lock by using a virtual
property that the child will map to its internal lock. This
way, we will only kill the load_thread when we have the lock
held (so no other thread is using mtp_device field).