mtp: added support for OBJECT_ADDED event

This patch adds support for OBJECT_ADDED event, which is emitted
when a file or a folder is created on the device. When such an
event is received, its path is determined by first looking up the
parent ID and appending object's name to it; the path and IDs are
added to cache, and create event is emitted, causing clients (for
example Nautilus) to display the new file/folder without having to
refresh the display of parent folder.

Signed-off-by: Rok Mandeljc <rok.mandeljc@gmail.com>
mtp: make remove_cache_entry_by_id() remove all matching entries, not just the first one

With the recently added on-demand post-fixing of storage names,
corner cases can occur in which we end up with multiple cache
entries that have the same storage id and item id, but different
paths.

In particular, this happens upon change of post-fixing requirement,
i.e., when a second storage that has same description as the first
one is either added or removed. In such cases, the contents of the
first storage might end up with two sets of cache entries, one where
storage name is post-fixed and one is not. If afterwards an
OBJECT_REMOVED event is received, only the first cache entry is
removed, which may or may not cause Nautilus to correctly remove
the file/folder.

Signed-off-by: Rok Mandeljc <rok.mandeljc@gmail.com>