Introduce RemoteCollection.Rename.

Ready to merge on sight!
Yeah, what in C# would be an `out` param where we tell the caller what went wrong, since this has nothing to do with events and thus doesn't *need* a callback.