New methods:
- `WikiPage.rename(self, new_name, db=None)`
- `Attachment.reparent_all(cls, env, old_realm, old_id, new_realm, new_id, db)`
Implementation note for `Attachment.reparent_all`: we move files individually instead of the whole folder, because:
1. this will work even if the new resource already exists (e.g. for merges)
2. it's complex when the new resource is a sub-folder if the old one
3. it's simply not possible in the general case (e.g. when the new page doesn'titself exist, but there are already sub-folders)
Note also that it's because of 3. (sub-folders may exists) that we don't remove the old attachment folder after the reparent.