[mtp] Do storage enumeration asynchronously

Some initiators (OS/X) got impatient while waiting for the
GetStorageIDs request, which is where we scanned the filesystem.
Work around this by scanning in a worker thread and continuing
the protocol until the results are actually needed.