Internally this is done with a MOVE HTTP verb. It is modeled after WebDAV MOVE but not exact to keep the Destination header shorter and have more consistent response codes. Fixes #6647