Introduce RemoteCollection.Rename.

Ready to merge on sight!
I think we should go with returning a list of strings instead of using a callback, but making it optional would be a good first step.