[mtp] Fix GetObjectHandles request with multiple storages

The request was returning duplicate handles when iterating over all storages.
Move m_storageId from FsStoragePlugin up to ancestor StoragePlugin
FSStoragePlugin: reduce scope of txCancelled variable
Fix array index out of bounds in StorageTracker::copy()

Result row leftover from previous query had only one item, causing
resultSet[i][1] to fail.
Fix FSStoragePlugin::copyObject() for cross-storage file copying
Check free space in FSStoragePlugin::copyObject()
[ptp] Use MTP_ASSOCIATION_TYPE_GenFolder for directories
[ptp] Stable order of object handles

This fixes a client problem where it showed only a random selection
of pictures from the device.
[ptp] Terminate data transfers according to PTP spec

PTP requires a 0-byte packet to be sent after a data transfer
if the transfer size was a multiple of the packet size.
This fixes a problem where certain files could not be imported
by iPhoto.
StoragePlugin::copyObject(): NULL destinationStorage means the same storage

Also refreshed method documentation a bit.
Merge pull request #24 from xhaakon/interstorage-copy-object

Fix FSStoragePlugin::copyObject() for cross-storage file copying
Merge pull request #25 from amtep/master

Increase compatibility with Mac PTP initiators (iPhoto, Image Capture)