We're already going to copy the data when we initialize the
nsISupportsString here. There's no need to copy the data into a
temporary object before passing it in to the nsISupportsString.
And as long as we're fixing the big mistakes, we might as well fix the
small ones, like copying the flavor string from the IPC object.
This converts |nsITransferable.flavorsTransferableCanExport| and
|nsITransferable.flavorsTransferableCanImport| to return a |nsIArray|.
|nsIFormatConverter.getInputDataFlavors| and
|nsIFormatConverter.getOutputDataFlavors| are updated as well.
I think the intent of this call is not to copy the flavor data passed
in, but to simply convert it to a friendlier nsCString container for
serializing to an IPC message. Since we won't be retaining references
to the passed-in strings after this function returns, we can make the
elements of our temporary array actually dependent strings, rather than
creating temporary dependent strings that would need to be copied into
the array.